0 CpxTRS
↳1 CpxTrsToCdtProof (BOTH BOUNDS(ID, ID), 94 ms)
↳2 CdtProblem
↳3 CdtLeafRemovalProof (BOTH BOUNDS(ID, ID), 0 ms)
↳4 CdtProblem
↳5 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳6 CdtProblem
↳7 CdtGraphSplitRhsProof (BOTH BOUNDS(ID, ID), 13 ms)
↳8 CdtProblem
↳9 CdtUsableRulesProof (⇔, 281 ms)
↳10 CdtProblem
↳11 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 174 ms)
↳12 CdtProblem
↳13 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳14 CdtProblem
↳15 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳16 CdtProblem
↳17 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 11 ms)
↳18 CdtProblem
↳19 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 2 ms)
↳20 CdtProblem
↳21 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳22 CdtProblem
↳23 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳24 CdtProblem
↳25 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳26 CdtProblem
↳27 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳28 CdtProblem
↳29 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳30 CdtProblem
↳31 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳32 CdtProblem
↳33 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳34 CdtProblem
↳35 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳36 CdtProblem
↳37 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳38 CdtProblem
↳39 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳40 CdtProblem
↳41 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳42 CdtProblem
↳43 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳44 CdtProblem
↳45 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳46 CdtProblem
↳47 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳48 CdtProblem
↳49 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳50 CdtProblem
↳51 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 99 ms)
↳52 CdtProblem
↳53 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳54 CdtProblem
↳55 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 356 ms)
↳56 CdtProblem
↳57 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳58 CdtProblem
↳59 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳60 CdtProblem
↳61 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 6 ms)
↳62 CdtProblem
↳63 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 0 ms)
↳64 CdtProblem
↳65 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 17 ms)
↳66 CdtProblem
↳67 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 124 ms)
↳68 CdtProblem
↳69 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 27 ms)
↳70 CdtProblem
↳71 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 112 ms)
↳72 CdtProblem
↳73 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳74 CdtProblem
↳75 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 230 ms)
↳76 CdtProblem
↳77 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳78 CdtProblem
↳79 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 2 ms)
↳80 CdtProblem
↳81 CdtRhsSimplificationProcessorProof (BOTH BOUNDS(ID, ID), 0 ms)
↳82 CdtProblem
↳83 CdtNarrowingProof (BOTH BOUNDS(ID, ID), 26 ms)
↳84 CdtProblem
↳85 CdtLeafRemovalProof (BOTH BOUNDS(ID, ID), 16 ms)
↳86 CdtProblem
↳87 CdtUnreachableProof (⇔, 9 ms)
↳88 CdtProblem
↳89 CdtUsableRulesProof (⇔, 0 ms)
↳90 CdtProblem
↳91 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 0 ms)
↳92 CdtProblem
↳93 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 31 ms)
↳94 CdtProblem
↳95 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 0 ms)
↳96 CdtProblem
↳97 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 14 ms)
↳98 CdtProblem
↳99 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 0 ms)
↳100 CdtProblem
↳101 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 16 ms)
↳102 CdtProblem
↳103 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 0 ms)
↳104 CdtProblem
↳105 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 20 ms)
↳106 CdtProblem
↳107 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 0 ms)
↳108 CdtProblem
↳109 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 0 ms)
↳110 CdtProblem
↳111 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 0 ms)
↳112 CdtProblem
↳113 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 0 ms)
↳114 CdtProblem
↳115 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 19 ms)
↳116 CdtProblem
↳117 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 0 ms)
↳118 CdtProblem
↳119 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 0 ms)
↳120 CdtProblem
↳121 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 0 ms)
↳122 CdtProblem
↳123 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 8 ms)
↳124 CdtProblem
↳125 CdtRuleRemovalProof (UPPER BOUND (ADD(O(n^1))), 0 ms)
↳126 CdtProblem
↳127 SIsEmptyProof (BOTH BOUNDS(ID, ID), 0 ms)
↳128 BOUNDS(O(1), O(1))
active(natsFrom(N)) → mark(cons(N, natsFrom(s(N))))
active(fst(pair(XS, YS))) → mark(XS)
active(snd(pair(XS, YS))) → mark(YS)
active(splitAt(0, XS)) → mark(pair(nil, XS))
active(splitAt(s(N), cons(X, XS))) → mark(u(splitAt(N, XS), N, X, XS))
active(u(pair(YS, ZS), N, X, XS)) → mark(pair(cons(X, YS), ZS))
active(head(cons(N, XS))) → mark(N)
active(tail(cons(N, XS))) → mark(XS)
active(sel(N, XS)) → mark(head(afterNth(N, XS)))
active(take(N, XS)) → mark(fst(splitAt(N, XS)))
active(afterNth(N, XS)) → mark(snd(splitAt(N, XS)))
active(natsFrom(X)) → natsFrom(active(X))
active(cons(X1, X2)) → cons(active(X1), X2)
active(s(X)) → s(active(X))
active(fst(X)) → fst(active(X))
active(pair(X1, X2)) → pair(active(X1), X2)
active(pair(X1, X2)) → pair(X1, active(X2))
active(snd(X)) → snd(active(X))
active(splitAt(X1, X2)) → splitAt(active(X1), X2)
active(splitAt(X1, X2)) → splitAt(X1, active(X2))
active(u(X1, X2, X3, X4)) → u(active(X1), X2, X3, X4)
active(head(X)) → head(active(X))
active(tail(X)) → tail(active(X))
active(sel(X1, X2)) → sel(active(X1), X2)
active(sel(X1, X2)) → sel(X1, active(X2))
active(afterNth(X1, X2)) → afterNth(active(X1), X2)
active(afterNth(X1, X2)) → afterNth(X1, active(X2))
active(take(X1, X2)) → take(active(X1), X2)
active(take(X1, X2)) → take(X1, active(X2))
natsFrom(mark(X)) → mark(natsFrom(X))
cons(mark(X1), X2) → mark(cons(X1, X2))
s(mark(X)) → mark(s(X))
fst(mark(X)) → mark(fst(X))
pair(mark(X1), X2) → mark(pair(X1, X2))
pair(X1, mark(X2)) → mark(pair(X1, X2))
snd(mark(X)) → mark(snd(X))
splitAt(mark(X1), X2) → mark(splitAt(X1, X2))
splitAt(X1, mark(X2)) → mark(splitAt(X1, X2))
u(mark(X1), X2, X3, X4) → mark(u(X1, X2, X3, X4))
head(mark(X)) → mark(head(X))
tail(mark(X)) → mark(tail(X))
sel(mark(X1), X2) → mark(sel(X1, X2))
sel(X1, mark(X2)) → mark(sel(X1, X2))
afterNth(mark(X1), X2) → mark(afterNth(X1, X2))
afterNth(X1, mark(X2)) → mark(afterNth(X1, X2))
take(mark(X1), X2) → mark(take(X1, X2))
take(X1, mark(X2)) → mark(take(X1, X2))
proper(natsFrom(X)) → natsFrom(proper(X))
proper(cons(X1, X2)) → cons(proper(X1), proper(X2))
proper(s(X)) → s(proper(X))
proper(fst(X)) → fst(proper(X))
proper(pair(X1, X2)) → pair(proper(X1), proper(X2))
proper(snd(X)) → snd(proper(X))
proper(splitAt(X1, X2)) → splitAt(proper(X1), proper(X2))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(X1, X2, X3, X4)) → u(proper(X1), proper(X2), proper(X3), proper(X4))
proper(head(X)) → head(proper(X))
proper(tail(X)) → tail(proper(X))
proper(sel(X1, X2)) → sel(proper(X1), proper(X2))
proper(afterNth(X1, X2)) → afterNth(proper(X1), proper(X2))
proper(take(X1, X2)) → take(proper(X1), proper(X2))
natsFrom(ok(X)) → ok(natsFrom(X))
cons(ok(X1), ok(X2)) → ok(cons(X1, X2))
s(ok(X)) → ok(s(X))
fst(ok(X)) → ok(fst(X))
pair(ok(X1), ok(X2)) → ok(pair(X1, X2))
snd(ok(X)) → ok(snd(X))
splitAt(ok(X1), ok(X2)) → ok(splitAt(X1, X2))
u(ok(X1), ok(X2), ok(X3), ok(X4)) → ok(u(X1, X2, X3, X4))
head(ok(X)) → ok(head(X))
tail(ok(X)) → ok(tail(X))
sel(ok(X1), ok(X2)) → ok(sel(X1, X2))
afterNth(ok(X1), ok(X2)) → ok(afterNth(X1, X2))
take(ok(X1), ok(X2)) → ok(take(X1, X2))
top(mark(X)) → top(proper(X))
top(ok(X)) → top(active(X))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
S tuples:
ACTIVE(natsFrom(z0)) → c(CONS(z0, natsFrom(s(z0))), NATSFROM(s(z0)), S(z0))
ACTIVE(fst(pair(z0, z1))) → c1
ACTIVE(snd(pair(z0, z1))) → c2
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c4(U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c5(PAIR(cons(z3, z0), z1), CONS(z3, z0))
ACTIVE(head(cons(z0, z1))) → c6
ACTIVE(tail(cons(z0, z1))) → c7
ACTIVE(sel(z0, z1)) → c8(HEAD(afterNth(z0, z1)), AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(FST(splitAt(z0, z1)), SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SND(splitAt(z0, z1)), SPLITAT(z0, z1))
ACTIVE(natsFrom(z0)) → c11(NATSFROM(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c12(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(0) → c67
PROPER(nil) → c68
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
K tuples:none
ACTIVE(natsFrom(z0)) → c(CONS(z0, natsFrom(s(z0))), NATSFROM(s(z0)), S(z0))
ACTIVE(fst(pair(z0, z1))) → c1
ACTIVE(snd(pair(z0, z1))) → c2
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c4(U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c5(PAIR(cons(z3, z0), z1), CONS(z3, z0))
ACTIVE(head(cons(z0, z1))) → c6
ACTIVE(tail(cons(z0, z1))) → c7
ACTIVE(sel(z0, z1)) → c8(HEAD(afterNth(z0, z1)), AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(FST(splitAt(z0, z1)), SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SND(splitAt(z0, z1)), SPLITAT(z0, z1))
ACTIVE(natsFrom(z0)) → c11(NATSFROM(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c12(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(0) → c67
PROPER(nil) → c68
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
active, natsFrom, cons, s, fst, pair, snd, splitAt, u, head, tail, sel, afterNth, take, proper, top
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c, c1, c2, c3, c4, c5, c6, c7, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c67, c68, c69, c70, c71, c72, c73, c74, c75, c76
PROPER(nil) → c68
ACTIVE(fst(pair(z0, z1))) → c1
PROPER(0) → c67
ACTIVE(snd(pair(z0, z1))) → c2
ACTIVE(head(cons(z0, z1))) → c6
ACTIVE(tail(cons(z0, z1))) → c7
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
S tuples:
ACTIVE(natsFrom(z0)) → c(CONS(z0, natsFrom(s(z0))), NATSFROM(s(z0)), S(z0))
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c4(U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c5(PAIR(cons(z3, z0), z1), CONS(z3, z0))
ACTIVE(sel(z0, z1)) → c8(HEAD(afterNth(z0, z1)), AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(FST(splitAt(z0, z1)), SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SND(splitAt(z0, z1)), SPLITAT(z0, z1))
ACTIVE(natsFrom(z0)) → c11(NATSFROM(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c12(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
K tuples:none
ACTIVE(natsFrom(z0)) → c(CONS(z0, natsFrom(s(z0))), NATSFROM(s(z0)), S(z0))
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c4(U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c5(PAIR(cons(z3, z0), z1), CONS(z3, z0))
ACTIVE(sel(z0, z1)) → c8(HEAD(afterNth(z0, z1)), AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(FST(splitAt(z0, z1)), SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SND(splitAt(z0, z1)), SPLITAT(z0, z1))
ACTIVE(natsFrom(z0)) → c11(NATSFROM(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c12(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
active, natsFrom, cons, s, fst, pair, snd, splitAt, u, head, tail, sel, afterNth, take, proper, top
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c, c3, c4, c5, c8, c9, c10, c11, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c4(U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c5(PAIR(cons(z3, z0), z1), CONS(z3, z0))
ACTIVE(natsFrom(z0)) → c11(NATSFROM(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c12(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c4(U(splitAt(z0, z2), z0, z1, z2), SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c5(PAIR(cons(z3, z0), z1), CONS(z3, z0))
ACTIVE(natsFrom(z0)) → c11(NATSFROM(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c12(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
active, natsFrom, cons, s, fst, pair, snd, splitAt, u, head, tail, sel, afterNth, take, proper, top
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c4, c5, c11, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(natsFrom(z0)) → c11(NATSFROM(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c12(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(natsFrom(z0)) → c11(NATSFROM(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c12(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
active, natsFrom, cons, s, fst, pair, snd, splitAt, u, head, tail, sel, afterNth, take, proper, top
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c11, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1
top(mark(z0)) → top(proper(z0))
top(ok(z0)) → top(active(z0))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(natsFrom(z0)) → c11(NATSFROM(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c12(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(natsFrom(z0)) → c11(NATSFROM(active(z0)), ACTIVE(z0))
ACTIVE(cons(z0, z1)) → c12(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c11, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(cons(z0, z1)) → c12(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(cons(z0, z1)) → c12(CONS(active(z0), z1), ACTIVE(z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c12, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(s(z0)) → c13(S(active(z0)), ACTIVE(z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c13, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(fst(z0)) → c14(FST(active(z0)), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c14, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(snd(z0)) → c17(SND(active(z0)), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c17, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(u(z0, z1, z2, z3)) → c20(U(active(z0), z1, z2, z3), ACTIVE(z0))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c20, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(head(z0)) → c21(HEAD(active(z0)), ACTIVE(z0))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c21, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(tail(z0)) → c22(TAIL(active(z0)), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c22, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(natsFrom(z0)) → c60(NATSFROM(proper(z0)), PROPER(z0))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c60, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)), PROPER(0))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)), PROPER(nil))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)), PROPER(0))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)), PROPER(nil))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)), PROPER(0))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)), PROPER(nil))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(cons(z0, z1)) → c61(CONS(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c61, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(s(z0)) → c62(S(proper(z0)), PROPER(z0))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c62, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)), PROPER(0))
PROPER(s(nil)) → c62(S(ok(nil)), PROPER(nil))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)), PROPER(0))
PROPER(s(nil)) → c62(S(ok(nil)), PROPER(nil))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)), PROPER(0))
PROPER(s(nil)) → c62(S(ok(nil)), PROPER(nil))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(fst(z0)) → c63(FST(proper(z0)), PROPER(z0))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c63, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)), PROPER(0))
PROPER(fst(nil)) → c63(FST(ok(nil)), PROPER(nil))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)), PROPER(0))
PROPER(fst(nil)) → c63(FST(ok(nil)), PROPER(nil))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)), PROPER(0))
PROPER(fst(nil)) → c63(FST(ok(nil)), PROPER(nil))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(pair(z0, z1)) → c64(PAIR(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c64, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(snd(z0)) → c65(SND(proper(z0)), PROPER(z0))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c65, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)), PROPER(0))
PROPER(snd(nil)) → c65(SND(ok(nil)), PROPER(nil))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)), PROPER(0))
PROPER(snd(nil)) → c65(SND(ok(nil)), PROPER(nil))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)), PROPER(0))
PROPER(snd(nil)) → c65(SND(ok(nil)), PROPER(nil))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(splitAt(z0, z1)) → c66(SPLITAT(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c66, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(u(z0, z1, z2, z3)) → c69(U(proper(z0), proper(z1), proper(z2), proper(z3)), PROPER(z0), PROPER(z1), PROPER(z2), PROPER(z3))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c69, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(0))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(nil))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(0), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(nil), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(nil), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(0), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(nil), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(0))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(nil))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(0), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(nil), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(nil), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(0), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(nil), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(0))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(nil))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(0), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(nil), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(nil), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(0), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(nil), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(head(z0)) → c70(HEAD(proper(z0)), PROPER(z0))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c70, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)), PROPER(0))
PROPER(head(nil)) → c70(HEAD(ok(nil)), PROPER(nil))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)), PROPER(0))
PROPER(head(nil)) → c70(HEAD(ok(nil)), PROPER(nil))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)), PROPER(0))
PROPER(head(nil)) → c70(HEAD(ok(nil)), PROPER(nil))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(tail(z0)) → c71(TAIL(proper(z0)), PROPER(z0))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c71, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)), PROPER(0))
PROPER(tail(nil)) → c71(TAIL(ok(nil)), PROPER(nil))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)), PROPER(0))
PROPER(tail(nil)) → c71(TAIL(ok(nil)), PROPER(nil))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)), PROPER(0))
PROPER(tail(nil)) → c71(TAIL(ok(nil)), PROPER(nil))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70, c71
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(sel(z0, z1)) → c72(SEL(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c72, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70, c71, c71
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70, c71, c71, c72
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(afterNth(z0, z1)) → c73(AFTERNTH(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c73, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70, c71, c71, c72, c72
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70, c71, c71, c72, c72, c73
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
PROPER(take(z0, z1)) → c74(TAKE(proper(z0), proper(z1)), PROPER(z0), PROPER(z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c74, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70, c71, c71, c72, c72, c73, c73
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0), PROPER(0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0), PROPER(nil))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(0), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(nil), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, TOP, PROPER
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70, c71, c71, c72, c72, c73, c73, c74
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(x1))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
TOP(mark(z0)) → c75(TOP(proper(z0)), PROPER(z0))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(x1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, TOP, PROPER
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c75, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70, c71, c71, c72, c72, c73, c73, c74, c74
TOP(mark(natsFrom(z0))) → c75(TOP(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
TOP(mark(cons(z0, z1))) → c75(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(s(z0))) → c75(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(fst(z0))) → c75(TOP(fst(proper(z0))), PROPER(fst(z0)))
TOP(mark(pair(z0, z1))) → c75(TOP(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
TOP(mark(snd(z0))) → c75(TOP(snd(proper(z0))), PROPER(snd(z0)))
TOP(mark(splitAt(z0, z1))) → c75(TOP(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
TOP(mark(0)) → c75(TOP(ok(0)), PROPER(0))
TOP(mark(nil)) → c75(TOP(ok(nil)), PROPER(nil))
TOP(mark(u(z0, z1, z2, z3))) → c75(TOP(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
TOP(mark(head(z0))) → c75(TOP(head(proper(z0))), PROPER(head(z0)))
TOP(mark(tail(z0))) → c75(TOP(tail(proper(z0))), PROPER(tail(z0)))
TOP(mark(sel(z0, z1))) → c75(TOP(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
TOP(mark(afterNth(z0, z1))) → c75(TOP(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
TOP(mark(take(z0, z1))) → c75(TOP(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(x1))
TOP(mark(natsFrom(z0))) → c75(TOP(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
TOP(mark(cons(z0, z1))) → c75(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(s(z0))) → c75(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(fst(z0))) → c75(TOP(fst(proper(z0))), PROPER(fst(z0)))
TOP(mark(pair(z0, z1))) → c75(TOP(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
TOP(mark(snd(z0))) → c75(TOP(snd(proper(z0))), PROPER(snd(z0)))
TOP(mark(splitAt(z0, z1))) → c75(TOP(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
TOP(mark(0)) → c75(TOP(ok(0)), PROPER(0))
TOP(mark(nil)) → c75(TOP(ok(nil)), PROPER(nil))
TOP(mark(u(z0, z1, z2, z3))) → c75(TOP(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
TOP(mark(head(z0))) → c75(TOP(head(proper(z0))), PROPER(head(z0)))
TOP(mark(tail(z0))) → c75(TOP(tail(proper(z0))), PROPER(tail(z0)))
TOP(mark(sel(z0, z1))) → c75(TOP(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
TOP(mark(afterNth(z0, z1))) → c75(TOP(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
TOP(mark(take(z0, z1))) → c75(TOP(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(x1))
TOP(mark(natsFrom(z0))) → c75(TOP(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
TOP(mark(cons(z0, z1))) → c75(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(s(z0))) → c75(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(fst(z0))) → c75(TOP(fst(proper(z0))), PROPER(fst(z0)))
TOP(mark(pair(z0, z1))) → c75(TOP(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
TOP(mark(snd(z0))) → c75(TOP(snd(proper(z0))), PROPER(snd(z0)))
TOP(mark(splitAt(z0, z1))) → c75(TOP(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
TOP(mark(0)) → c75(TOP(ok(0)), PROPER(0))
TOP(mark(nil)) → c75(TOP(ok(nil)), PROPER(nil))
TOP(mark(u(z0, z1, z2, z3))) → c75(TOP(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
TOP(mark(head(z0))) → c75(TOP(head(proper(z0))), PROPER(head(z0)))
TOP(mark(tail(z0))) → c75(TOP(tail(proper(z0))), PROPER(tail(z0)))
TOP(mark(sel(z0, z1))) → c75(TOP(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
TOP(mark(afterNth(z0, z1))) → c75(TOP(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
TOP(mark(take(z0, z1))) → c75(TOP(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, TOP, PROPER
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70, c71, c71, c72, c72, c73, c73, c74, c74, c75
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(x1))
TOP(mark(natsFrom(z0))) → c75(TOP(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
TOP(mark(cons(z0, z1))) → c75(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(s(z0))) → c75(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(fst(z0))) → c75(TOP(fst(proper(z0))), PROPER(fst(z0)))
TOP(mark(pair(z0, z1))) → c75(TOP(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
TOP(mark(snd(z0))) → c75(TOP(snd(proper(z0))), PROPER(snd(z0)))
TOP(mark(splitAt(z0, z1))) → c75(TOP(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
TOP(mark(u(z0, z1, z2, z3))) → c75(TOP(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
TOP(mark(head(z0))) → c75(TOP(head(proper(z0))), PROPER(head(z0)))
TOP(mark(tail(z0))) → c75(TOP(tail(proper(z0))), PROPER(tail(z0)))
TOP(mark(sel(z0, z1))) → c75(TOP(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
TOP(mark(afterNth(z0, z1))) → c75(TOP(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
TOP(mark(take(z0, z1))) → c75(TOP(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
TOP(mark(0)) → c75(TOP(ok(0)))
TOP(mark(nil)) → c75(TOP(ok(nil)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
TOP(ok(z0)) → c76(TOP(active(z0)), ACTIVE(z0))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(x1))
TOP(mark(natsFrom(z0))) → c75(TOP(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
TOP(mark(cons(z0, z1))) → c75(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(s(z0))) → c75(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(fst(z0))) → c75(TOP(fst(proper(z0))), PROPER(fst(z0)))
TOP(mark(pair(z0, z1))) → c75(TOP(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
TOP(mark(snd(z0))) → c75(TOP(snd(proper(z0))), PROPER(snd(z0)))
TOP(mark(splitAt(z0, z1))) → c75(TOP(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
TOP(mark(u(z0, z1, z2, z3))) → c75(TOP(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
TOP(mark(head(z0))) → c75(TOP(head(proper(z0))), PROPER(head(z0)))
TOP(mark(tail(z0))) → c75(TOP(tail(proper(z0))), PROPER(tail(z0)))
TOP(mark(sel(z0, z1))) → c75(TOP(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
TOP(mark(afterNth(z0, z1))) → c75(TOP(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
TOP(mark(take(z0, z1))) → c75(TOP(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
TOP(mark(0)) → c75(TOP(ok(0)))
TOP(mark(nil)) → c75(TOP(ok(nil)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, TOP, PROPER
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c76, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70, c71, c71, c72, c72, c73, c73, c74, c74, c75, c75
TOP(ok(natsFrom(z0))) → c76(TOP(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
TOP(ok(fst(pair(z0, z1)))) → c76(TOP(mark(z0)), ACTIVE(fst(pair(z0, z1))))
TOP(ok(snd(pair(z0, z1)))) → c76(TOP(mark(z1)), ACTIVE(snd(pair(z0, z1))))
TOP(ok(splitAt(0, z0))) → c76(TOP(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
TOP(ok(splitAt(s(z0), cons(z1, z2)))) → c76(TOP(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
TOP(ok(u(pair(z0, z1), z2, z3, z4))) → c76(TOP(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
TOP(ok(head(cons(z0, z1)))) → c76(TOP(mark(z0)), ACTIVE(head(cons(z0, z1))))
TOP(ok(tail(cons(z0, z1)))) → c76(TOP(mark(z1)), ACTIVE(tail(cons(z0, z1))))
TOP(ok(sel(z0, z1))) → c76(TOP(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
TOP(ok(natsFrom(z0))) → c76(TOP(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
TOP(ok(cons(z0, z1))) → c76(TOP(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
TOP(ok(s(z0))) → c76(TOP(s(active(z0))), ACTIVE(s(z0)))
TOP(ok(fst(z0))) → c76(TOP(fst(active(z0))), ACTIVE(fst(z0)))
TOP(ok(pair(z0, z1))) → c76(TOP(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
TOP(ok(pair(z0, z1))) → c76(TOP(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
TOP(ok(snd(z0))) → c76(TOP(snd(active(z0))), ACTIVE(snd(z0)))
TOP(ok(splitAt(z0, z1))) → c76(TOP(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
TOP(ok(splitAt(z0, z1))) → c76(TOP(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
TOP(ok(u(z0, z1, z2, z3))) → c76(TOP(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
TOP(ok(head(z0))) → c76(TOP(head(active(z0))), ACTIVE(head(z0)))
TOP(ok(tail(z0))) → c76(TOP(tail(active(z0))), ACTIVE(tail(z0)))
TOP(ok(sel(z0, z1))) → c76(TOP(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
TOP(ok(sel(z0, z1))) → c76(TOP(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(take(active(z0), z1)), ACTIVE(take(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(take(z0, active(z1))), ACTIVE(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(x1))
TOP(mark(natsFrom(z0))) → c75(TOP(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
TOP(mark(cons(z0, z1))) → c75(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(s(z0))) → c75(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(fst(z0))) → c75(TOP(fst(proper(z0))), PROPER(fst(z0)))
TOP(mark(pair(z0, z1))) → c75(TOP(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
TOP(mark(snd(z0))) → c75(TOP(snd(proper(z0))), PROPER(snd(z0)))
TOP(mark(splitAt(z0, z1))) → c75(TOP(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
TOP(mark(u(z0, z1, z2, z3))) → c75(TOP(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
TOP(mark(head(z0))) → c75(TOP(head(proper(z0))), PROPER(head(z0)))
TOP(mark(tail(z0))) → c75(TOP(tail(proper(z0))), PROPER(tail(z0)))
TOP(mark(sel(z0, z1))) → c75(TOP(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
TOP(mark(afterNth(z0, z1))) → c75(TOP(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
TOP(mark(take(z0, z1))) → c75(TOP(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
TOP(mark(0)) → c75(TOP(ok(0)))
TOP(mark(nil)) → c75(TOP(ok(nil)))
TOP(ok(natsFrom(z0))) → c76(TOP(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
TOP(ok(fst(pair(z0, z1)))) → c76(TOP(mark(z0)), ACTIVE(fst(pair(z0, z1))))
TOP(ok(snd(pair(z0, z1)))) → c76(TOP(mark(z1)), ACTIVE(snd(pair(z0, z1))))
TOP(ok(splitAt(0, z0))) → c76(TOP(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
TOP(ok(splitAt(s(z0), cons(z1, z2)))) → c76(TOP(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
TOP(ok(u(pair(z0, z1), z2, z3, z4))) → c76(TOP(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
TOP(ok(head(cons(z0, z1)))) → c76(TOP(mark(z0)), ACTIVE(head(cons(z0, z1))))
TOP(ok(tail(cons(z0, z1)))) → c76(TOP(mark(z1)), ACTIVE(tail(cons(z0, z1))))
TOP(ok(sel(z0, z1))) → c76(TOP(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
TOP(ok(natsFrom(z0))) → c76(TOP(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
TOP(ok(cons(z0, z1))) → c76(TOP(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
TOP(ok(s(z0))) → c76(TOP(s(active(z0))), ACTIVE(s(z0)))
TOP(ok(fst(z0))) → c76(TOP(fst(active(z0))), ACTIVE(fst(z0)))
TOP(ok(pair(z0, z1))) → c76(TOP(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
TOP(ok(pair(z0, z1))) → c76(TOP(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
TOP(ok(snd(z0))) → c76(TOP(snd(active(z0))), ACTIVE(snd(z0)))
TOP(ok(splitAt(z0, z1))) → c76(TOP(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
TOP(ok(splitAt(z0, z1))) → c76(TOP(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
TOP(ok(u(z0, z1, z2, z3))) → c76(TOP(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
TOP(ok(head(z0))) → c76(TOP(head(active(z0))), ACTIVE(head(z0)))
TOP(ok(tail(z0))) → c76(TOP(tail(active(z0))), ACTIVE(tail(z0)))
TOP(ok(sel(z0, z1))) → c76(TOP(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
TOP(ok(sel(z0, z1))) → c76(TOP(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(take(active(z0), z1)), ACTIVE(take(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(take(z0, active(z1))), ACTIVE(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(x1))
TOP(mark(natsFrom(z0))) → c75(TOP(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
TOP(mark(cons(z0, z1))) → c75(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(s(z0))) → c75(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(fst(z0))) → c75(TOP(fst(proper(z0))), PROPER(fst(z0)))
TOP(mark(pair(z0, z1))) → c75(TOP(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
TOP(mark(snd(z0))) → c75(TOP(snd(proper(z0))), PROPER(snd(z0)))
TOP(mark(splitAt(z0, z1))) → c75(TOP(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
TOP(mark(u(z0, z1, z2, z3))) → c75(TOP(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
TOP(mark(head(z0))) → c75(TOP(head(proper(z0))), PROPER(head(z0)))
TOP(mark(tail(z0))) → c75(TOP(tail(proper(z0))), PROPER(tail(z0)))
TOP(mark(sel(z0, z1))) → c75(TOP(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
TOP(mark(afterNth(z0, z1))) → c75(TOP(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
TOP(mark(take(z0, z1))) → c75(TOP(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
TOP(mark(0)) → c75(TOP(ok(0)))
TOP(mark(nil)) → c75(TOP(ok(nil)))
TOP(ok(natsFrom(z0))) → c76(TOP(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
TOP(ok(fst(pair(z0, z1)))) → c76(TOP(mark(z0)), ACTIVE(fst(pair(z0, z1))))
TOP(ok(snd(pair(z0, z1)))) → c76(TOP(mark(z1)), ACTIVE(snd(pair(z0, z1))))
TOP(ok(splitAt(0, z0))) → c76(TOP(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
TOP(ok(splitAt(s(z0), cons(z1, z2)))) → c76(TOP(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
TOP(ok(u(pair(z0, z1), z2, z3, z4))) → c76(TOP(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
TOP(ok(head(cons(z0, z1)))) → c76(TOP(mark(z0)), ACTIVE(head(cons(z0, z1))))
TOP(ok(tail(cons(z0, z1)))) → c76(TOP(mark(z1)), ACTIVE(tail(cons(z0, z1))))
TOP(ok(sel(z0, z1))) → c76(TOP(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
TOP(ok(natsFrom(z0))) → c76(TOP(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
TOP(ok(cons(z0, z1))) → c76(TOP(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
TOP(ok(s(z0))) → c76(TOP(s(active(z0))), ACTIVE(s(z0)))
TOP(ok(fst(z0))) → c76(TOP(fst(active(z0))), ACTIVE(fst(z0)))
TOP(ok(pair(z0, z1))) → c76(TOP(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
TOP(ok(pair(z0, z1))) → c76(TOP(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
TOP(ok(snd(z0))) → c76(TOP(snd(active(z0))), ACTIVE(snd(z0)))
TOP(ok(splitAt(z0, z1))) → c76(TOP(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
TOP(ok(splitAt(z0, z1))) → c76(TOP(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
TOP(ok(u(z0, z1, z2, z3))) → c76(TOP(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
TOP(ok(head(z0))) → c76(TOP(head(active(z0))), ACTIVE(head(z0)))
TOP(ok(tail(z0))) → c76(TOP(tail(active(z0))), ACTIVE(tail(z0)))
TOP(ok(sel(z0, z1))) → c76(TOP(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
TOP(ok(sel(z0, z1))) → c76(TOP(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(take(active(z0), z1)), ACTIVE(take(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(take(z0, active(z1))), ACTIVE(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70, c71, c71, c72, c72, c73, c73, c74, c74, c75, c75, c76
TOP(mark(0)) → c75(TOP(ok(0)))
TOP(mark(nil)) → c75(TOP(ok(nil)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(x1))
TOP(mark(natsFrom(z0))) → c75(TOP(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
TOP(mark(cons(z0, z1))) → c75(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(s(z0))) → c75(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(fst(z0))) → c75(TOP(fst(proper(z0))), PROPER(fst(z0)))
TOP(mark(pair(z0, z1))) → c75(TOP(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
TOP(mark(snd(z0))) → c75(TOP(snd(proper(z0))), PROPER(snd(z0)))
TOP(mark(splitAt(z0, z1))) → c75(TOP(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
TOP(mark(u(z0, z1, z2, z3))) → c75(TOP(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
TOP(mark(head(z0))) → c75(TOP(head(proper(z0))), PROPER(head(z0)))
TOP(mark(tail(z0))) → c75(TOP(tail(proper(z0))), PROPER(tail(z0)))
TOP(mark(sel(z0, z1))) → c75(TOP(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
TOP(mark(afterNth(z0, z1))) → c75(TOP(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
TOP(mark(take(z0, z1))) → c75(TOP(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
TOP(ok(natsFrom(z0))) → c76(TOP(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
TOP(ok(fst(pair(z0, z1)))) → c76(TOP(mark(z0)), ACTIVE(fst(pair(z0, z1))))
TOP(ok(snd(pair(z0, z1)))) → c76(TOP(mark(z1)), ACTIVE(snd(pair(z0, z1))))
TOP(ok(splitAt(0, z0))) → c76(TOP(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
TOP(ok(splitAt(s(z0), cons(z1, z2)))) → c76(TOP(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
TOP(ok(u(pair(z0, z1), z2, z3, z4))) → c76(TOP(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
TOP(ok(head(cons(z0, z1)))) → c76(TOP(mark(z0)), ACTIVE(head(cons(z0, z1))))
TOP(ok(tail(cons(z0, z1)))) → c76(TOP(mark(z1)), ACTIVE(tail(cons(z0, z1))))
TOP(ok(sel(z0, z1))) → c76(TOP(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
TOP(ok(natsFrom(z0))) → c76(TOP(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
TOP(ok(cons(z0, z1))) → c76(TOP(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
TOP(ok(s(z0))) → c76(TOP(s(active(z0))), ACTIVE(s(z0)))
TOP(ok(fst(z0))) → c76(TOP(fst(active(z0))), ACTIVE(fst(z0)))
TOP(ok(pair(z0, z1))) → c76(TOP(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
TOP(ok(pair(z0, z1))) → c76(TOP(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
TOP(ok(snd(z0))) → c76(TOP(snd(active(z0))), ACTIVE(snd(z0)))
TOP(ok(splitAt(z0, z1))) → c76(TOP(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
TOP(ok(splitAt(z0, z1))) → c76(TOP(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
TOP(ok(u(z0, z1, z2, z3))) → c76(TOP(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
TOP(ok(head(z0))) → c76(TOP(head(active(z0))), ACTIVE(head(z0)))
TOP(ok(tail(z0))) → c76(TOP(tail(active(z0))), ACTIVE(tail(z0)))
TOP(ok(sel(z0, z1))) → c76(TOP(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
TOP(ok(sel(z0, z1))) → c76(TOP(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(take(active(z0), z1)), ACTIVE(take(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(take(z0, active(z1))), ACTIVE(take(z0, z1)))
K tuples:none
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(x1))
TOP(mark(natsFrom(z0))) → c75(TOP(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
TOP(mark(cons(z0, z1))) → c75(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(s(z0))) → c75(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(fst(z0))) → c75(TOP(fst(proper(z0))), PROPER(fst(z0)))
TOP(mark(pair(z0, z1))) → c75(TOP(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
TOP(mark(snd(z0))) → c75(TOP(snd(proper(z0))), PROPER(snd(z0)))
TOP(mark(splitAt(z0, z1))) → c75(TOP(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
TOP(mark(u(z0, z1, z2, z3))) → c75(TOP(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
TOP(mark(head(z0))) → c75(TOP(head(proper(z0))), PROPER(head(z0)))
TOP(mark(tail(z0))) → c75(TOP(tail(proper(z0))), PROPER(tail(z0)))
TOP(mark(sel(z0, z1))) → c75(TOP(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
TOP(mark(afterNth(z0, z1))) → c75(TOP(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
TOP(mark(take(z0, z1))) → c75(TOP(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
TOP(ok(natsFrom(z0))) → c76(TOP(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
TOP(ok(fst(pair(z0, z1)))) → c76(TOP(mark(z0)), ACTIVE(fst(pair(z0, z1))))
TOP(ok(snd(pair(z0, z1)))) → c76(TOP(mark(z1)), ACTIVE(snd(pair(z0, z1))))
TOP(ok(splitAt(0, z0))) → c76(TOP(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
TOP(ok(splitAt(s(z0), cons(z1, z2)))) → c76(TOP(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
TOP(ok(u(pair(z0, z1), z2, z3, z4))) → c76(TOP(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
TOP(ok(head(cons(z0, z1)))) → c76(TOP(mark(z0)), ACTIVE(head(cons(z0, z1))))
TOP(ok(tail(cons(z0, z1)))) → c76(TOP(mark(z1)), ACTIVE(tail(cons(z0, z1))))
TOP(ok(sel(z0, z1))) → c76(TOP(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
TOP(ok(natsFrom(z0))) → c76(TOP(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
TOP(ok(cons(z0, z1))) → c76(TOP(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
TOP(ok(s(z0))) → c76(TOP(s(active(z0))), ACTIVE(s(z0)))
TOP(ok(fst(z0))) → c76(TOP(fst(active(z0))), ACTIVE(fst(z0)))
TOP(ok(pair(z0, z1))) → c76(TOP(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
TOP(ok(pair(z0, z1))) → c76(TOP(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
TOP(ok(snd(z0))) → c76(TOP(snd(active(z0))), ACTIVE(snd(z0)))
TOP(ok(splitAt(z0, z1))) → c76(TOP(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
TOP(ok(splitAt(z0, z1))) → c76(TOP(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
TOP(ok(u(z0, z1, z2, z3))) → c76(TOP(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
TOP(ok(head(z0))) → c76(TOP(head(active(z0))), ACTIVE(head(z0)))
TOP(ok(tail(z0))) → c76(TOP(tail(active(z0))), ACTIVE(tail(z0)))
TOP(ok(sel(z0, z1))) → c76(TOP(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
TOP(ok(sel(z0, z1))) → c76(TOP(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(take(active(z0), z1)), ACTIVE(take(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(take(z0, active(z1))), ACTIVE(take(z0, z1)))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
ACTIVE, NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE, PROPER, TOP
c3, c15, c16, c18, c19, c23, c24, c25, c26, c27, c28, c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59, c, c8, c9, c10, c1, c11, c12, c13, c14, c17, c20, c21, c22, c60, c60, c61, c61, c62, c62, c63, c63, c64, c64, c65, c65, c66, c66, c69, c69, c70, c70, c71, c71, c72, c72, c73, c73, c74, c74, c75, c76
ACTIVE(splitAt(0, z0)) → c3(PAIR(nil, z0))
ACTIVE(pair(z0, z1)) → c15(PAIR(active(z0), z1), ACTIVE(z0))
ACTIVE(pair(z0, z1)) → c16(PAIR(z0, active(z1)), ACTIVE(z1))
ACTIVE(splitAt(z0, z1)) → c18(SPLITAT(active(z0), z1), ACTIVE(z0))
ACTIVE(splitAt(z0, z1)) → c19(SPLITAT(z0, active(z1)), ACTIVE(z1))
ACTIVE(sel(z0, z1)) → c23(SEL(active(z0), z1), ACTIVE(z0))
ACTIVE(sel(z0, z1)) → c24(SEL(z0, active(z1)), ACTIVE(z1))
ACTIVE(afterNth(z0, z1)) → c25(AFTERNTH(active(z0), z1), ACTIVE(z0))
ACTIVE(afterNth(z0, z1)) → c26(AFTERNTH(z0, active(z1)), ACTIVE(z1))
ACTIVE(take(z0, z1)) → c27(TAKE(active(z0), z1), ACTIVE(z0))
ACTIVE(take(z0, z1)) → c28(TAKE(z0, active(z1)), ACTIVE(z1))
ACTIVE(natsFrom(z0)) → c(S(z0))
ACTIVE(sel(z0, z1)) → c8(AFTERNTH(z0, z1))
ACTIVE(take(z0, z1)) → c9(SPLITAT(z0, z1))
ACTIVE(afterNth(z0, z1)) → c10(SPLITAT(z0, z1))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(U(splitAt(z0, z2), z0, z1, z2))
ACTIVE(splitAt(s(z0), cons(z1, z2))) → c1(SPLITAT(z0, z2))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(PAIR(cons(z3, z0), z1))
ACTIVE(u(pair(z0, z1), z2, z3, z4)) → c1(CONS(z3, z0))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(fst(pair(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(natsFrom(snd(pair(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(natsFrom(splitAt(0, z0))) → c11(NATSFROM(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(natsFrom(splitAt(s(z0), cons(z1, z2)))) → c11(NATSFROM(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(natsFrom(u(pair(z0, z1), z2, z3, z4))) → c11(NATSFROM(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(natsFrom(head(cons(z0, z1)))) → c11(NATSFROM(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(natsFrom(tail(cons(z0, z1)))) → c11(NATSFROM(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(natsFrom(z0))) → c11(NATSFROM(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(natsFrom(cons(z0, z1))) → c11(NATSFROM(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(natsFrom(s(z0))) → c11(NATSFROM(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(natsFrom(fst(z0))) → c11(NATSFROM(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(pair(z0, z1))) → c11(NATSFROM(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(natsFrom(snd(z0))) → c11(NATSFROM(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(splitAt(z0, z1))) → c11(NATSFROM(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(natsFrom(u(z0, z1, z2, z3))) → c11(NATSFROM(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(natsFrom(head(z0))) → c11(NATSFROM(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(natsFrom(tail(z0))) → c11(NATSFROM(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(sel(z0, z1))) → c11(NATSFROM(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(afterNth(z0, z1))) → c11(NATSFROM(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(natsFrom(take(z0, z1))) → c11(NATSFROM(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(mark(cons(z0, natsFrom(s(z0)))), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(fst(pair(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(fst(pair(z0, z1))))
ACTIVE(cons(snd(pair(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(snd(pair(z0, z1))))
ACTIVE(cons(splitAt(0, z0), x1)) → c12(CONS(mark(pair(nil, z0)), x1), ACTIVE(splitAt(0, z0)))
ACTIVE(cons(splitAt(s(z0), cons(z1, z2)), x1)) → c12(CONS(mark(u(splitAt(z0, z2), z0, z1, z2)), x1), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(cons(u(pair(z0, z1), z2, z3, z4), x1)) → c12(CONS(mark(pair(cons(z3, z0), z1)), x1), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(cons(head(cons(z0, z1)), x1)) → c12(CONS(mark(z0), x1), ACTIVE(head(cons(z0, z1))))
ACTIVE(cons(tail(cons(z0, z1)), x1)) → c12(CONS(mark(z1), x1), ACTIVE(tail(cons(z0, z1))))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(mark(head(afterNth(z0, z1))), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(mark(fst(splitAt(z0, z1))), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(mark(snd(splitAt(z0, z1))), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(natsFrom(z0), x1)) → c12(CONS(natsFrom(active(z0)), x1), ACTIVE(natsFrom(z0)))
ACTIVE(cons(cons(z0, z1), x1)) → c12(CONS(cons(active(z0), z1), x1), ACTIVE(cons(z0, z1)))
ACTIVE(cons(s(z0), x1)) → c12(CONS(s(active(z0)), x1), ACTIVE(s(z0)))
ACTIVE(cons(fst(z0), x1)) → c12(CONS(fst(active(z0)), x1), ACTIVE(fst(z0)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(active(z0), z1), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(pair(z0, z1), x1)) → c12(CONS(pair(z0, active(z1)), x1), ACTIVE(pair(z0, z1)))
ACTIVE(cons(snd(z0), x1)) → c12(CONS(snd(active(z0)), x1), ACTIVE(snd(z0)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(active(z0), z1), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(splitAt(z0, z1), x1)) → c12(CONS(splitAt(z0, active(z1)), x1), ACTIVE(splitAt(z0, z1)))
ACTIVE(cons(u(z0, z1, z2, z3), x1)) → c12(CONS(u(active(z0), z1, z2, z3), x1), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(cons(head(z0), x1)) → c12(CONS(head(active(z0)), x1), ACTIVE(head(z0)))
ACTIVE(cons(tail(z0), x1)) → c12(CONS(tail(active(z0)), x1), ACTIVE(tail(z0)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(active(z0), z1), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(sel(z0, z1), x1)) → c12(CONS(sel(z0, active(z1)), x1), ACTIVE(sel(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(active(z0), z1), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(afterNth(z0, z1), x1)) → c12(CONS(afterNth(z0, active(z1)), x1), ACTIVE(afterNth(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(active(z0), z1), x1), ACTIVE(take(z0, z1)))
ACTIVE(cons(take(z0, z1), x1)) → c12(CONS(take(z0, active(z1)), x1), ACTIVE(take(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(s(fst(pair(z0, z1)))) → c13(S(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(s(snd(pair(z0, z1)))) → c13(S(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(s(splitAt(0, z0))) → c13(S(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(s(splitAt(s(z0), cons(z1, z2)))) → c13(S(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(s(u(pair(z0, z1), z2, z3, z4))) → c13(S(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(s(head(cons(z0, z1)))) → c13(S(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(s(tail(cons(z0, z1)))) → c13(S(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(s(sel(z0, z1))) → c13(S(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(natsFrom(z0))) → c13(S(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(s(cons(z0, z1))) → c13(S(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(s(s(z0))) → c13(S(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(s(fst(z0))) → c13(S(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(s(pair(z0, z1))) → c13(S(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(s(snd(z0))) → c13(S(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(splitAt(z0, z1))) → c13(S(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(s(u(z0, z1, z2, z3))) → c13(S(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(s(head(z0))) → c13(S(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(s(tail(z0))) → c13(S(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(s(sel(z0, z1))) → c13(S(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(afterNth(z0, z1))) → c13(S(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(s(take(z0, z1))) → c13(S(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(fst(pair(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(fst(snd(pair(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(fst(splitAt(0, z0))) → c14(FST(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(fst(splitAt(s(z0), cons(z1, z2)))) → c14(FST(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(fst(u(pair(z0, z1), z2, z3, z4))) → c14(FST(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(fst(head(cons(z0, z1)))) → c14(FST(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(fst(tail(cons(z0, z1)))) → c14(FST(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(fst(sel(z0, z1))) → c14(FST(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(natsFrom(z0))) → c14(FST(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(fst(cons(z0, z1))) → c14(FST(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(fst(s(z0))) → c14(FST(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(fst(fst(z0))) → c14(FST(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(fst(pair(z0, z1))) → c14(FST(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(fst(snd(z0))) → c14(FST(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(splitAt(z0, z1))) → c14(FST(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(fst(u(z0, z1, z2, z3))) → c14(FST(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(fst(head(z0))) → c14(FST(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(fst(tail(z0))) → c14(FST(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(fst(sel(z0, z1))) → c14(FST(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(afterNth(z0, z1))) → c14(FST(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(fst(take(z0, z1))) → c14(FST(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(fst(pair(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(snd(snd(pair(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(snd(splitAt(0, z0))) → c17(SND(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(snd(splitAt(s(z0), cons(z1, z2)))) → c17(SND(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(snd(u(pair(z0, z1), z2, z3, z4))) → c17(SND(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(snd(head(cons(z0, z1)))) → c17(SND(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(snd(tail(cons(z0, z1)))) → c17(SND(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(snd(sel(z0, z1))) → c17(SND(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(natsFrom(z0))) → c17(SND(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(snd(cons(z0, z1))) → c17(SND(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(snd(s(z0))) → c17(SND(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(snd(fst(z0))) → c17(SND(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(snd(pair(z0, z1))) → c17(SND(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(snd(snd(z0))) → c17(SND(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(splitAt(z0, z1))) → c17(SND(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(snd(u(z0, z1, z2, z3))) → c17(SND(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(snd(head(z0))) → c17(SND(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(snd(tail(z0))) → c17(SND(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(snd(sel(z0, z1))) → c17(SND(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(afterNth(z0, z1))) → c17(SND(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(snd(take(z0, z1))) → c17(SND(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(mark(cons(z0, natsFrom(s(z0)))), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(fst(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(fst(pair(z0, z1))))
ACTIVE(u(snd(pair(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(snd(pair(z0, z1))))
ACTIVE(u(splitAt(0, z0), x1, x2, x3)) → c20(U(mark(pair(nil, z0)), x1, x2, x3), ACTIVE(splitAt(0, z0)))
ACTIVE(u(splitAt(s(z0), cons(z1, z2)), x1, x2, x3)) → c20(U(mark(u(splitAt(z0, z2), z0, z1, z2)), x1, x2, x3), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(u(u(pair(z0, z1), z2, z3, z4), x1, x2, x3)) → c20(U(mark(pair(cons(z3, z0), z1)), x1, x2, x3), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(u(head(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z0), x1, x2, x3), ACTIVE(head(cons(z0, z1))))
ACTIVE(u(tail(cons(z0, z1)), x1, x2, x3)) → c20(U(mark(z1), x1, x2, x3), ACTIVE(tail(cons(z0, z1))))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(mark(head(afterNth(z0, z1))), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(mark(fst(splitAt(z0, z1))), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(mark(snd(splitAt(z0, z1))), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(natsFrom(z0), x1, x2, x3)) → c20(U(natsFrom(active(z0)), x1, x2, x3), ACTIVE(natsFrom(z0)))
ACTIVE(u(cons(z0, z1), x1, x2, x3)) → c20(U(cons(active(z0), z1), x1, x2, x3), ACTIVE(cons(z0, z1)))
ACTIVE(u(s(z0), x1, x2, x3)) → c20(U(s(active(z0)), x1, x2, x3), ACTIVE(s(z0)))
ACTIVE(u(fst(z0), x1, x2, x3)) → c20(U(fst(active(z0)), x1, x2, x3), ACTIVE(fst(z0)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(active(z0), z1), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(pair(z0, z1), x1, x2, x3)) → c20(U(pair(z0, active(z1)), x1, x2, x3), ACTIVE(pair(z0, z1)))
ACTIVE(u(snd(z0), x1, x2, x3)) → c20(U(snd(active(z0)), x1, x2, x3), ACTIVE(snd(z0)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(active(z0), z1), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(splitAt(z0, z1), x1, x2, x3)) → c20(U(splitAt(z0, active(z1)), x1, x2, x3), ACTIVE(splitAt(z0, z1)))
ACTIVE(u(u(z0, z1, z2, z3), x1, x2, x3)) → c20(U(u(active(z0), z1, z2, z3), x1, x2, x3), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(u(head(z0), x1, x2, x3)) → c20(U(head(active(z0)), x1, x2, x3), ACTIVE(head(z0)))
ACTIVE(u(tail(z0), x1, x2, x3)) → c20(U(tail(active(z0)), x1, x2, x3), ACTIVE(tail(z0)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(active(z0), z1), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(sel(z0, z1), x1, x2, x3)) → c20(U(sel(z0, active(z1)), x1, x2, x3), ACTIVE(sel(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(active(z0), z1), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(afterNth(z0, z1), x1, x2, x3)) → c20(U(afterNth(z0, active(z1)), x1, x2, x3), ACTIVE(afterNth(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(active(z0), z1), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(u(take(z0, z1), x1, x2, x3)) → c20(U(take(z0, active(z1)), x1, x2, x3), ACTIVE(take(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(head(fst(pair(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(head(snd(pair(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(head(splitAt(0, z0))) → c21(HEAD(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(head(splitAt(s(z0), cons(z1, z2)))) → c21(HEAD(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(head(u(pair(z0, z1), z2, z3, z4))) → c21(HEAD(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(head(head(cons(z0, z1)))) → c21(HEAD(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(head(tail(cons(z0, z1)))) → c21(HEAD(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(natsFrom(z0))) → c21(HEAD(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(head(cons(z0, z1))) → c21(HEAD(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(head(s(z0))) → c21(HEAD(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(head(fst(z0))) → c21(HEAD(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(head(pair(z0, z1))) → c21(HEAD(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(head(snd(z0))) → c21(HEAD(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(splitAt(z0, z1))) → c21(HEAD(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(head(u(z0, z1, z2, z3))) → c21(HEAD(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(head(head(z0))) → c21(HEAD(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(head(tail(z0))) → c21(HEAD(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(head(sel(z0, z1))) → c21(HEAD(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(afterNth(z0, z1))) → c21(HEAD(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(head(take(z0, z1))) → c21(HEAD(take(z0, active(z1))), ACTIVE(take(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(fst(pair(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(fst(pair(z0, z1))))
ACTIVE(tail(snd(pair(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(snd(pair(z0, z1))))
ACTIVE(tail(splitAt(0, z0))) → c22(TAIL(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
ACTIVE(tail(splitAt(s(z0), cons(z1, z2)))) → c22(TAIL(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
ACTIVE(tail(u(pair(z0, z1), z2, z3, z4))) → c22(TAIL(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
ACTIVE(tail(head(cons(z0, z1)))) → c22(TAIL(mark(z0)), ACTIVE(head(cons(z0, z1))))
ACTIVE(tail(tail(cons(z0, z1)))) → c22(TAIL(mark(z1)), ACTIVE(tail(cons(z0, z1))))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(natsFrom(z0))) → c22(TAIL(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
ACTIVE(tail(cons(z0, z1))) → c22(TAIL(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
ACTIVE(tail(s(z0))) → c22(TAIL(s(active(z0))), ACTIVE(s(z0)))
ACTIVE(tail(fst(z0))) → c22(TAIL(fst(active(z0))), ACTIVE(fst(z0)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
ACTIVE(tail(pair(z0, z1))) → c22(TAIL(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
ACTIVE(tail(snd(z0))) → c22(TAIL(snd(active(z0))), ACTIVE(snd(z0)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(splitAt(z0, z1))) → c22(TAIL(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
ACTIVE(tail(u(z0, z1, z2, z3))) → c22(TAIL(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
ACTIVE(tail(head(z0))) → c22(TAIL(head(active(z0))), ACTIVE(head(z0)))
ACTIVE(tail(tail(z0))) → c22(TAIL(tail(active(z0))), ACTIVE(tail(z0)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
ACTIVE(tail(sel(z0, z1))) → c22(TAIL(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(afterNth(z0, z1))) → c22(TAIL(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(active(z0), z1)), ACTIVE(take(z0, z1)))
ACTIVE(tail(take(z0, z1))) → c22(TAIL(take(z0, active(z1))), ACTIVE(take(z0, z1)))
PROPER(natsFrom(natsFrom(z0))) → c60(NATSFROM(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(natsFrom(cons(z0, z1))) → c60(NATSFROM(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(natsFrom(s(z0))) → c60(NATSFROM(s(proper(z0))), PROPER(s(z0)))
PROPER(natsFrom(fst(z0))) → c60(NATSFROM(fst(proper(z0))), PROPER(fst(z0)))
PROPER(natsFrom(pair(z0, z1))) → c60(NATSFROM(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(natsFrom(snd(z0))) → c60(NATSFROM(snd(proper(z0))), PROPER(snd(z0)))
PROPER(natsFrom(splitAt(z0, z1))) → c60(NATSFROM(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(natsFrom(u(z0, z1, z2, z3))) → c60(NATSFROM(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(natsFrom(head(z0))) → c60(NATSFROM(head(proper(z0))), PROPER(head(z0)))
PROPER(natsFrom(tail(z0))) → c60(NATSFROM(tail(proper(z0))), PROPER(tail(z0)))
PROPER(natsFrom(sel(z0, z1))) → c60(NATSFROM(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(natsFrom(afterNth(z0, z1))) → c60(NATSFROM(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(natsFrom(take(z0, z1))) → c60(NATSFROM(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(natsFrom(0)) → c60(NATSFROM(ok(0)))
PROPER(natsFrom(nil)) → c60(NATSFROM(ok(nil)))
PROPER(cons(x0, natsFrom(z0))) → c61(CONS(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(cons(x0, cons(z0, z1))) → c61(CONS(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(cons(x0, s(z0))) → c61(CONS(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(cons(x0, fst(z0))) → c61(CONS(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(cons(x0, pair(z0, z1))) → c61(CONS(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(cons(x0, snd(z0))) → c61(CONS(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(cons(x0, splitAt(z0, z1))) → c61(CONS(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(cons(x0, u(z0, z1, z2, z3))) → c61(CONS(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(cons(x0, head(z0))) → c61(CONS(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(cons(x0, tail(z0))) → c61(CONS(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(cons(x0, sel(z0, z1))) → c61(CONS(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(cons(x0, afterNth(z0, z1))) → c61(CONS(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(cons(x0, take(z0, z1))) → c61(CONS(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(cons(natsFrom(z0), x1)) → c61(CONS(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(cons(cons(z0, z1), x1)) → c61(CONS(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(cons(s(z0), x1)) → c61(CONS(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(cons(fst(z0), x1)) → c61(CONS(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(cons(pair(z0, z1), x1)) → c61(CONS(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(cons(snd(z0), x1)) → c61(CONS(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(cons(splitAt(z0, z1), x1)) → c61(CONS(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(cons(u(z0, z1, z2, z3), x1)) → c61(CONS(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(cons(head(z0), x1)) → c61(CONS(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(cons(tail(z0), x1)) → c61(CONS(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(cons(sel(z0, z1), x1)) → c61(CONS(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(cons(afterNth(z0, z1), x1)) → c61(CONS(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(cons(take(z0, z1), x1)) → c61(CONS(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(cons(x0, 0)) → c61(CONS(proper(x0), ok(0)), PROPER(x0))
PROPER(cons(x0, nil)) → c61(CONS(proper(x0), ok(nil)), PROPER(x0))
PROPER(cons(0, x1)) → c61(CONS(ok(0), proper(x1)), PROPER(x1))
PROPER(cons(nil, x1)) → c61(CONS(ok(nil), proper(x1)), PROPER(x1))
PROPER(s(natsFrom(z0))) → c62(S(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(s(cons(z0, z1))) → c62(S(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(s(s(z0))) → c62(S(s(proper(z0))), PROPER(s(z0)))
PROPER(s(fst(z0))) → c62(S(fst(proper(z0))), PROPER(fst(z0)))
PROPER(s(pair(z0, z1))) → c62(S(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(s(snd(z0))) → c62(S(snd(proper(z0))), PROPER(snd(z0)))
PROPER(s(splitAt(z0, z1))) → c62(S(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(s(u(z0, z1, z2, z3))) → c62(S(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(s(head(z0))) → c62(S(head(proper(z0))), PROPER(head(z0)))
PROPER(s(tail(z0))) → c62(S(tail(proper(z0))), PROPER(tail(z0)))
PROPER(s(sel(z0, z1))) → c62(S(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(s(afterNth(z0, z1))) → c62(S(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(s(take(z0, z1))) → c62(S(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(s(0)) → c62(S(ok(0)))
PROPER(s(nil)) → c62(S(ok(nil)))
PROPER(fst(natsFrom(z0))) → c63(FST(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(fst(cons(z0, z1))) → c63(FST(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(fst(s(z0))) → c63(FST(s(proper(z0))), PROPER(s(z0)))
PROPER(fst(fst(z0))) → c63(FST(fst(proper(z0))), PROPER(fst(z0)))
PROPER(fst(pair(z0, z1))) → c63(FST(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(fst(snd(z0))) → c63(FST(snd(proper(z0))), PROPER(snd(z0)))
PROPER(fst(splitAt(z0, z1))) → c63(FST(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(fst(u(z0, z1, z2, z3))) → c63(FST(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(fst(head(z0))) → c63(FST(head(proper(z0))), PROPER(head(z0)))
PROPER(fst(tail(z0))) → c63(FST(tail(proper(z0))), PROPER(tail(z0)))
PROPER(fst(sel(z0, z1))) → c63(FST(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(fst(afterNth(z0, z1))) → c63(FST(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(fst(take(z0, z1))) → c63(FST(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(fst(0)) → c63(FST(ok(0)))
PROPER(fst(nil)) → c63(FST(ok(nil)))
PROPER(pair(x0, natsFrom(z0))) → c64(PAIR(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(pair(x0, cons(z0, z1))) → c64(PAIR(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(pair(x0, s(z0))) → c64(PAIR(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(pair(x0, fst(z0))) → c64(PAIR(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(pair(x0, pair(z0, z1))) → c64(PAIR(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(pair(x0, snd(z0))) → c64(PAIR(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(pair(x0, splitAt(z0, z1))) → c64(PAIR(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(pair(x0, u(z0, z1, z2, z3))) → c64(PAIR(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(pair(x0, head(z0))) → c64(PAIR(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(pair(x0, tail(z0))) → c64(PAIR(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(pair(x0, sel(z0, z1))) → c64(PAIR(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(pair(x0, afterNth(z0, z1))) → c64(PAIR(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(pair(x0, take(z0, z1))) → c64(PAIR(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(pair(natsFrom(z0), x1)) → c64(PAIR(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(pair(cons(z0, z1), x1)) → c64(PAIR(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(pair(s(z0), x1)) → c64(PAIR(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(pair(fst(z0), x1)) → c64(PAIR(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(pair(pair(z0, z1), x1)) → c64(PAIR(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(pair(snd(z0), x1)) → c64(PAIR(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(pair(splitAt(z0, z1), x1)) → c64(PAIR(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(pair(u(z0, z1, z2, z3), x1)) → c64(PAIR(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(pair(head(z0), x1)) → c64(PAIR(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(pair(tail(z0), x1)) → c64(PAIR(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(pair(sel(z0, z1), x1)) → c64(PAIR(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(pair(afterNth(z0, z1), x1)) → c64(PAIR(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(pair(take(z0, z1), x1)) → c64(PAIR(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(pair(x0, 0)) → c64(PAIR(proper(x0), ok(0)), PROPER(x0))
PROPER(pair(x0, nil)) → c64(PAIR(proper(x0), ok(nil)), PROPER(x0))
PROPER(pair(0, x1)) → c64(PAIR(ok(0), proper(x1)), PROPER(x1))
PROPER(pair(nil, x1)) → c64(PAIR(ok(nil), proper(x1)), PROPER(x1))
PROPER(snd(natsFrom(z0))) → c65(SND(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(snd(cons(z0, z1))) → c65(SND(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(snd(s(z0))) → c65(SND(s(proper(z0))), PROPER(s(z0)))
PROPER(snd(fst(z0))) → c65(SND(fst(proper(z0))), PROPER(fst(z0)))
PROPER(snd(pair(z0, z1))) → c65(SND(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(snd(snd(z0))) → c65(SND(snd(proper(z0))), PROPER(snd(z0)))
PROPER(snd(splitAt(z0, z1))) → c65(SND(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(snd(u(z0, z1, z2, z3))) → c65(SND(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(snd(head(z0))) → c65(SND(head(proper(z0))), PROPER(head(z0)))
PROPER(snd(tail(z0))) → c65(SND(tail(proper(z0))), PROPER(tail(z0)))
PROPER(snd(sel(z0, z1))) → c65(SND(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(snd(afterNth(z0, z1))) → c65(SND(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(snd(take(z0, z1))) → c65(SND(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(snd(0)) → c65(SND(ok(0)))
PROPER(snd(nil)) → c65(SND(ok(nil)))
PROPER(splitAt(x0, natsFrom(z0))) → c66(SPLITAT(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(splitAt(x0, cons(z0, z1))) → c66(SPLITAT(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(splitAt(x0, s(z0))) → c66(SPLITAT(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(splitAt(x0, fst(z0))) → c66(SPLITAT(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(splitAt(x0, pair(z0, z1))) → c66(SPLITAT(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(splitAt(x0, snd(z0))) → c66(SPLITAT(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(splitAt(x0, splitAt(z0, z1))) → c66(SPLITAT(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(splitAt(x0, u(z0, z1, z2, z3))) → c66(SPLITAT(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(splitAt(x0, head(z0))) → c66(SPLITAT(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(splitAt(x0, tail(z0))) → c66(SPLITAT(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(splitAt(x0, sel(z0, z1))) → c66(SPLITAT(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(splitAt(x0, afterNth(z0, z1))) → c66(SPLITAT(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(splitAt(x0, take(z0, z1))) → c66(SPLITAT(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(splitAt(natsFrom(z0), x1)) → c66(SPLITAT(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(splitAt(cons(z0, z1), x1)) → c66(SPLITAT(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(splitAt(s(z0), x1)) → c66(SPLITAT(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(splitAt(fst(z0), x1)) → c66(SPLITAT(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(splitAt(pair(z0, z1), x1)) → c66(SPLITAT(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(splitAt(snd(z0), x1)) → c66(SPLITAT(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(splitAt(splitAt(z0, z1), x1)) → c66(SPLITAT(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(splitAt(u(z0, z1, z2, z3), x1)) → c66(SPLITAT(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(splitAt(head(z0), x1)) → c66(SPLITAT(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(splitAt(tail(z0), x1)) → c66(SPLITAT(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(splitAt(sel(z0, z1), x1)) → c66(SPLITAT(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(splitAt(afterNth(z0, z1), x1)) → c66(SPLITAT(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(splitAt(take(z0, z1), x1)) → c66(SPLITAT(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(splitAt(x0, 0)) → c66(SPLITAT(proper(x0), ok(0)), PROPER(x0))
PROPER(splitAt(x0, nil)) → c66(SPLITAT(proper(x0), ok(nil)), PROPER(x0))
PROPER(splitAt(0, x1)) → c66(SPLITAT(ok(0), proper(x1)), PROPER(x1))
PROPER(splitAt(nil, x1)) → c66(SPLITAT(ok(nil), proper(x1)), PROPER(x1))
PROPER(u(x0, x1, x2, natsFrom(z0))) → c69(U(proper(x0), proper(x1), proper(x2), natsFrom(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(natsFrom(z0)))
PROPER(u(x0, x1, x2, cons(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(cons(z0, z1)))
PROPER(u(x0, x1, x2, s(z0))) → c69(U(proper(x0), proper(x1), proper(x2), s(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(s(z0)))
PROPER(u(x0, x1, x2, fst(z0))) → c69(U(proper(x0), proper(x1), proper(x2), fst(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(fst(z0)))
PROPER(u(x0, x1, x2, pair(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(pair(z0, z1)))
PROPER(u(x0, x1, x2, snd(z0))) → c69(U(proper(x0), proper(x1), proper(x2), snd(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(snd(z0)))
PROPER(u(x0, x1, x2, splitAt(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(splitAt(z0, z1)))
PROPER(u(x0, x1, x2, u(z0, z1, z2, z3))) → c69(U(proper(x0), proper(x1), proper(x2), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(u(z0, z1, z2, z3)))
PROPER(u(x0, x1, x2, head(z0))) → c69(U(proper(x0), proper(x1), proper(x2), head(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(head(z0)))
PROPER(u(x0, x1, x2, tail(z0))) → c69(U(proper(x0), proper(x1), proper(x2), tail(proper(z0))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(tail(z0)))
PROPER(u(x0, x1, x2, sel(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(sel(z0, z1)))
PROPER(u(x0, x1, x2, afterNth(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(afterNth(z0, z1)))
PROPER(u(x0, x1, x2, take(z0, z1))) → c69(U(proper(x0), proper(x1), proper(x2), take(proper(z0), proper(z1))), PROPER(x0), PROPER(x1), PROPER(x2), PROPER(take(z0, z1)))
PROPER(u(x0, x1, natsFrom(z0), x3)) → c69(U(proper(x0), proper(x1), natsFrom(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(natsFrom(z0)), PROPER(x3))
PROPER(u(x0, x1, cons(z0, z1), x3)) → c69(U(proper(x0), proper(x1), cons(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(cons(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, s(z0), x3)) → c69(U(proper(x0), proper(x1), s(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(s(z0)), PROPER(x3))
PROPER(u(x0, x1, fst(z0), x3)) → c69(U(proper(x0), proper(x1), fst(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(fst(z0)), PROPER(x3))
PROPER(u(x0, x1, pair(z0, z1), x3)) → c69(U(proper(x0), proper(x1), pair(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(pair(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, snd(z0), x3)) → c69(U(proper(x0), proper(x1), snd(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(snd(z0)), PROPER(x3))
PROPER(u(x0, x1, splitAt(z0, z1), x3)) → c69(U(proper(x0), proper(x1), splitAt(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(splitAt(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, u(z0, z1, z2, z3), x3)) → c69(U(proper(x0), proper(x1), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(u(z0, z1, z2, z3)), PROPER(x3))
PROPER(u(x0, x1, head(z0), x3)) → c69(U(proper(x0), proper(x1), head(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(head(z0)), PROPER(x3))
PROPER(u(x0, x1, tail(z0), x3)) → c69(U(proper(x0), proper(x1), tail(proper(z0)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(tail(z0)), PROPER(x3))
PROPER(u(x0, x1, sel(z0, z1), x3)) → c69(U(proper(x0), proper(x1), sel(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(sel(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, afterNth(z0, z1), x3)) → c69(U(proper(x0), proper(x1), afterNth(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(afterNth(z0, z1)), PROPER(x3))
PROPER(u(x0, x1, take(z0, z1), x3)) → c69(U(proper(x0), proper(x1), take(proper(z0), proper(z1)), proper(x3)), PROPER(x0), PROPER(x1), PROPER(take(z0, z1)), PROPER(x3))
PROPER(u(x0, natsFrom(z0), x2, x3)) → c69(U(proper(x0), natsFrom(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(natsFrom(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, cons(z0, z1), x2, x3)) → c69(U(proper(x0), cons(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(cons(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, s(z0), x2, x3)) → c69(U(proper(x0), s(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(s(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, fst(z0), x2, x3)) → c69(U(proper(x0), fst(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(fst(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, pair(z0, z1), x2, x3)) → c69(U(proper(x0), pair(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(pair(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, snd(z0), x2, x3)) → c69(U(proper(x0), snd(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(snd(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, splitAt(z0, z1), x2, x3)) → c69(U(proper(x0), splitAt(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(splitAt(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, u(z0, z1, z2, z3), x2, x3)) → c69(U(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x2), proper(x3)), PROPER(x0), PROPER(u(z0, z1, z2, z3)), PROPER(x2), PROPER(x3))
PROPER(u(x0, head(z0), x2, x3)) → c69(U(proper(x0), head(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(head(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, tail(z0), x2, x3)) → c69(U(proper(x0), tail(proper(z0)), proper(x2), proper(x3)), PROPER(x0), PROPER(tail(z0)), PROPER(x2), PROPER(x3))
PROPER(u(x0, sel(z0, z1), x2, x3)) → c69(U(proper(x0), sel(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(sel(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, afterNth(z0, z1), x2, x3)) → c69(U(proper(x0), afterNth(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(afterNth(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(x0, take(z0, z1), x2, x3)) → c69(U(proper(x0), take(proper(z0), proper(z1)), proper(x2), proper(x3)), PROPER(x0), PROPER(take(z0, z1)), PROPER(x2), PROPER(x3))
PROPER(u(natsFrom(z0), x1, x2, x3)) → c69(U(natsFrom(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(natsFrom(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(cons(z0, z1), x1, x2, x3)) → c69(U(cons(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(cons(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(s(z0), x1, x2, x3)) → c69(U(s(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(s(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(fst(z0), x1, x2, x3)) → c69(U(fst(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(fst(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(pair(z0, z1), x1, x2, x3)) → c69(U(pair(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(pair(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(snd(z0), x1, x2, x3)) → c69(U(snd(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(snd(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(splitAt(z0, z1), x1, x2, x3)) → c69(U(splitAt(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(splitAt(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(u(z0, z1, z2, z3), x1, x2, x3)) → c69(U(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1), proper(x2), proper(x3)), PROPER(u(z0, z1, z2, z3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(head(z0), x1, x2, x3)) → c69(U(head(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(head(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(tail(z0), x1, x2, x3)) → c69(U(tail(proper(z0)), proper(x1), proper(x2), proper(x3)), PROPER(tail(z0)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(sel(z0, z1), x1, x2, x3)) → c69(U(sel(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(sel(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(afterNth(z0, z1), x1, x2, x3)) → c69(U(afterNth(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(afterNth(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(take(z0, z1), x1, x2, x3)) → c69(U(take(proper(z0), proper(z1)), proper(x1), proper(x2), proper(x3)), PROPER(take(z0, z1)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(x0, x1, x2, 0)) → c69(U(proper(x0), proper(x1), proper(x2), ok(0)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, x2, nil)) → c69(U(proper(x0), proper(x1), proper(x2), ok(nil)), PROPER(x0), PROPER(x1), PROPER(x2))
PROPER(u(x0, x1, 0, x3)) → c69(U(proper(x0), proper(x1), ok(0), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, x1, nil, x3)) → c69(U(proper(x0), proper(x1), ok(nil), proper(x3)), PROPER(x0), PROPER(x1), PROPER(x3))
PROPER(u(x0, 0, x2, x3)) → c69(U(proper(x0), ok(0), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(x0, nil, x2, x3)) → c69(U(proper(x0), ok(nil), proper(x2), proper(x3)), PROPER(x0), PROPER(x2), PROPER(x3))
PROPER(u(0, x1, x2, x3)) → c69(U(ok(0), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(u(nil, x1, x2, x3)) → c69(U(ok(nil), proper(x1), proper(x2), proper(x3)), PROPER(x1), PROPER(x2), PROPER(x3))
PROPER(head(natsFrom(z0))) → c70(HEAD(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(head(cons(z0, z1))) → c70(HEAD(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(head(s(z0))) → c70(HEAD(s(proper(z0))), PROPER(s(z0)))
PROPER(head(fst(z0))) → c70(HEAD(fst(proper(z0))), PROPER(fst(z0)))
PROPER(head(pair(z0, z1))) → c70(HEAD(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(head(snd(z0))) → c70(HEAD(snd(proper(z0))), PROPER(snd(z0)))
PROPER(head(splitAt(z0, z1))) → c70(HEAD(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(head(u(z0, z1, z2, z3))) → c70(HEAD(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(head(head(z0))) → c70(HEAD(head(proper(z0))), PROPER(head(z0)))
PROPER(head(tail(z0))) → c70(HEAD(tail(proper(z0))), PROPER(tail(z0)))
PROPER(head(sel(z0, z1))) → c70(HEAD(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(head(afterNth(z0, z1))) → c70(HEAD(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(head(take(z0, z1))) → c70(HEAD(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(head(0)) → c70(HEAD(ok(0)))
PROPER(head(nil)) → c70(HEAD(ok(nil)))
PROPER(tail(natsFrom(z0))) → c71(TAIL(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
PROPER(tail(cons(z0, z1))) → c71(TAIL(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
PROPER(tail(s(z0))) → c71(TAIL(s(proper(z0))), PROPER(s(z0)))
PROPER(tail(fst(z0))) → c71(TAIL(fst(proper(z0))), PROPER(fst(z0)))
PROPER(tail(pair(z0, z1))) → c71(TAIL(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
PROPER(tail(snd(z0))) → c71(TAIL(snd(proper(z0))), PROPER(snd(z0)))
PROPER(tail(splitAt(z0, z1))) → c71(TAIL(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
PROPER(tail(u(z0, z1, z2, z3))) → c71(TAIL(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
PROPER(tail(head(z0))) → c71(TAIL(head(proper(z0))), PROPER(head(z0)))
PROPER(tail(tail(z0))) → c71(TAIL(tail(proper(z0))), PROPER(tail(z0)))
PROPER(tail(sel(z0, z1))) → c71(TAIL(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
PROPER(tail(afterNth(z0, z1))) → c71(TAIL(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
PROPER(tail(take(z0, z1))) → c71(TAIL(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
PROPER(tail(0)) → c71(TAIL(ok(0)))
PROPER(tail(nil)) → c71(TAIL(ok(nil)))
PROPER(sel(x0, natsFrom(z0))) → c72(SEL(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(sel(x0, cons(z0, z1))) → c72(SEL(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(sel(x0, s(z0))) → c72(SEL(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(sel(x0, fst(z0))) → c72(SEL(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(sel(x0, pair(z0, z1))) → c72(SEL(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(sel(x0, snd(z0))) → c72(SEL(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(sel(x0, splitAt(z0, z1))) → c72(SEL(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(sel(x0, u(z0, z1, z2, z3))) → c72(SEL(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(sel(x0, head(z0))) → c72(SEL(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(sel(x0, tail(z0))) → c72(SEL(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(sel(x0, sel(z0, z1))) → c72(SEL(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(sel(x0, afterNth(z0, z1))) → c72(SEL(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(sel(x0, take(z0, z1))) → c72(SEL(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(sel(natsFrom(z0), x1)) → c72(SEL(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(sel(cons(z0, z1), x1)) → c72(SEL(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(sel(s(z0), x1)) → c72(SEL(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(sel(fst(z0), x1)) → c72(SEL(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(sel(pair(z0, z1), x1)) → c72(SEL(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(sel(snd(z0), x1)) → c72(SEL(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(sel(splitAt(z0, z1), x1)) → c72(SEL(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(sel(u(z0, z1, z2, z3), x1)) → c72(SEL(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(sel(head(z0), x1)) → c72(SEL(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(sel(tail(z0), x1)) → c72(SEL(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(sel(sel(z0, z1), x1)) → c72(SEL(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(sel(afterNth(z0, z1), x1)) → c72(SEL(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(sel(take(z0, z1), x1)) → c72(SEL(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(sel(x0, 0)) → c72(SEL(proper(x0), ok(0)), PROPER(x0))
PROPER(sel(x0, nil)) → c72(SEL(proper(x0), ok(nil)), PROPER(x0))
PROPER(sel(0, x1)) → c72(SEL(ok(0), proper(x1)), PROPER(x1))
PROPER(sel(nil, x1)) → c72(SEL(ok(nil), proper(x1)), PROPER(x1))
PROPER(afterNth(x0, natsFrom(z0))) → c73(AFTERNTH(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(afterNth(x0, cons(z0, z1))) → c73(AFTERNTH(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(afterNth(x0, s(z0))) → c73(AFTERNTH(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(afterNth(x0, fst(z0))) → c73(AFTERNTH(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(afterNth(x0, pair(z0, z1))) → c73(AFTERNTH(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(afterNth(x0, snd(z0))) → c73(AFTERNTH(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(afterNth(x0, splitAt(z0, z1))) → c73(AFTERNTH(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(afterNth(x0, u(z0, z1, z2, z3))) → c73(AFTERNTH(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(afterNth(x0, head(z0))) → c73(AFTERNTH(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(afterNth(x0, tail(z0))) → c73(AFTERNTH(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(afterNth(x0, sel(z0, z1))) → c73(AFTERNTH(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(afterNth(x0, afterNth(z0, z1))) → c73(AFTERNTH(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(afterNth(x0, take(z0, z1))) → c73(AFTERNTH(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(afterNth(natsFrom(z0), x1)) → c73(AFTERNTH(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(afterNth(cons(z0, z1), x1)) → c73(AFTERNTH(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(afterNth(s(z0), x1)) → c73(AFTERNTH(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(afterNth(fst(z0), x1)) → c73(AFTERNTH(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(afterNth(pair(z0, z1), x1)) → c73(AFTERNTH(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(afterNth(snd(z0), x1)) → c73(AFTERNTH(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(afterNth(splitAt(z0, z1), x1)) → c73(AFTERNTH(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(afterNth(u(z0, z1, z2, z3), x1)) → c73(AFTERNTH(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(afterNth(head(z0), x1)) → c73(AFTERNTH(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(afterNth(tail(z0), x1)) → c73(AFTERNTH(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(afterNth(sel(z0, z1), x1)) → c73(AFTERNTH(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(afterNth(afterNth(z0, z1), x1)) → c73(AFTERNTH(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(afterNth(take(z0, z1), x1)) → c73(AFTERNTH(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(afterNth(x0, 0)) → c73(AFTERNTH(proper(x0), ok(0)), PROPER(x0))
PROPER(afterNth(x0, nil)) → c73(AFTERNTH(proper(x0), ok(nil)), PROPER(x0))
PROPER(afterNth(0, x1)) → c73(AFTERNTH(ok(0), proper(x1)), PROPER(x1))
PROPER(afterNth(nil, x1)) → c73(AFTERNTH(ok(nil), proper(x1)), PROPER(x1))
PROPER(take(x0, natsFrom(z0))) → c74(TAKE(proper(x0), natsFrom(proper(z0))), PROPER(x0), PROPER(natsFrom(z0)))
PROPER(take(x0, cons(z0, z1))) → c74(TAKE(proper(x0), cons(proper(z0), proper(z1))), PROPER(x0), PROPER(cons(z0, z1)))
PROPER(take(x0, s(z0))) → c74(TAKE(proper(x0), s(proper(z0))), PROPER(x0), PROPER(s(z0)))
PROPER(take(x0, fst(z0))) → c74(TAKE(proper(x0), fst(proper(z0))), PROPER(x0), PROPER(fst(z0)))
PROPER(take(x0, pair(z0, z1))) → c74(TAKE(proper(x0), pair(proper(z0), proper(z1))), PROPER(x0), PROPER(pair(z0, z1)))
PROPER(take(x0, snd(z0))) → c74(TAKE(proper(x0), snd(proper(z0))), PROPER(x0), PROPER(snd(z0)))
PROPER(take(x0, splitAt(z0, z1))) → c74(TAKE(proper(x0), splitAt(proper(z0), proper(z1))), PROPER(x0), PROPER(splitAt(z0, z1)))
PROPER(take(x0, u(z0, z1, z2, z3))) → c74(TAKE(proper(x0), u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(x0), PROPER(u(z0, z1, z2, z3)))
PROPER(take(x0, head(z0))) → c74(TAKE(proper(x0), head(proper(z0))), PROPER(x0), PROPER(head(z0)))
PROPER(take(x0, tail(z0))) → c74(TAKE(proper(x0), tail(proper(z0))), PROPER(x0), PROPER(tail(z0)))
PROPER(take(x0, sel(z0, z1))) → c74(TAKE(proper(x0), sel(proper(z0), proper(z1))), PROPER(x0), PROPER(sel(z0, z1)))
PROPER(take(x0, afterNth(z0, z1))) → c74(TAKE(proper(x0), afterNth(proper(z0), proper(z1))), PROPER(x0), PROPER(afterNth(z0, z1)))
PROPER(take(x0, take(z0, z1))) → c74(TAKE(proper(x0), take(proper(z0), proper(z1))), PROPER(x0), PROPER(take(z0, z1)))
PROPER(take(natsFrom(z0), x1)) → c74(TAKE(natsFrom(proper(z0)), proper(x1)), PROPER(natsFrom(z0)), PROPER(x1))
PROPER(take(cons(z0, z1), x1)) → c74(TAKE(cons(proper(z0), proper(z1)), proper(x1)), PROPER(cons(z0, z1)), PROPER(x1))
PROPER(take(s(z0), x1)) → c74(TAKE(s(proper(z0)), proper(x1)), PROPER(s(z0)), PROPER(x1))
PROPER(take(fst(z0), x1)) → c74(TAKE(fst(proper(z0)), proper(x1)), PROPER(fst(z0)), PROPER(x1))
PROPER(take(pair(z0, z1), x1)) → c74(TAKE(pair(proper(z0), proper(z1)), proper(x1)), PROPER(pair(z0, z1)), PROPER(x1))
PROPER(take(snd(z0), x1)) → c74(TAKE(snd(proper(z0)), proper(x1)), PROPER(snd(z0)), PROPER(x1))
PROPER(take(splitAt(z0, z1), x1)) → c74(TAKE(splitAt(proper(z0), proper(z1)), proper(x1)), PROPER(splitAt(z0, z1)), PROPER(x1))
PROPER(take(u(z0, z1, z2, z3), x1)) → c74(TAKE(u(proper(z0), proper(z1), proper(z2), proper(z3)), proper(x1)), PROPER(u(z0, z1, z2, z3)), PROPER(x1))
PROPER(take(head(z0), x1)) → c74(TAKE(head(proper(z0)), proper(x1)), PROPER(head(z0)), PROPER(x1))
PROPER(take(tail(z0), x1)) → c74(TAKE(tail(proper(z0)), proper(x1)), PROPER(tail(z0)), PROPER(x1))
PROPER(take(sel(z0, z1), x1)) → c74(TAKE(sel(proper(z0), proper(z1)), proper(x1)), PROPER(sel(z0, z1)), PROPER(x1))
PROPER(take(afterNth(z0, z1), x1)) → c74(TAKE(afterNth(proper(z0), proper(z1)), proper(x1)), PROPER(afterNth(z0, z1)), PROPER(x1))
PROPER(take(take(z0, z1), x1)) → c74(TAKE(take(proper(z0), proper(z1)), proper(x1)), PROPER(take(z0, z1)), PROPER(x1))
PROPER(take(x0, 0)) → c74(TAKE(proper(x0), ok(0)), PROPER(x0))
PROPER(take(x0, nil)) → c74(TAKE(proper(x0), ok(nil)), PROPER(x0))
PROPER(take(0, x1)) → c74(TAKE(ok(0), proper(x1)), PROPER(x1))
PROPER(take(nil, x1)) → c74(TAKE(ok(nil), proper(x1)), PROPER(x1))
TOP(mark(natsFrom(z0))) → c75(TOP(natsFrom(proper(z0))), PROPER(natsFrom(z0)))
TOP(mark(cons(z0, z1))) → c75(TOP(cons(proper(z0), proper(z1))), PROPER(cons(z0, z1)))
TOP(mark(s(z0))) → c75(TOP(s(proper(z0))), PROPER(s(z0)))
TOP(mark(fst(z0))) → c75(TOP(fst(proper(z0))), PROPER(fst(z0)))
TOP(mark(pair(z0, z1))) → c75(TOP(pair(proper(z0), proper(z1))), PROPER(pair(z0, z1)))
TOP(mark(snd(z0))) → c75(TOP(snd(proper(z0))), PROPER(snd(z0)))
TOP(mark(splitAt(z0, z1))) → c75(TOP(splitAt(proper(z0), proper(z1))), PROPER(splitAt(z0, z1)))
TOP(mark(u(z0, z1, z2, z3))) → c75(TOP(u(proper(z0), proper(z1), proper(z2), proper(z3))), PROPER(u(z0, z1, z2, z3)))
TOP(mark(head(z0))) → c75(TOP(head(proper(z0))), PROPER(head(z0)))
TOP(mark(tail(z0))) → c75(TOP(tail(proper(z0))), PROPER(tail(z0)))
TOP(mark(sel(z0, z1))) → c75(TOP(sel(proper(z0), proper(z1))), PROPER(sel(z0, z1)))
TOP(mark(afterNth(z0, z1))) → c75(TOP(afterNth(proper(z0), proper(z1))), PROPER(afterNth(z0, z1)))
TOP(mark(take(z0, z1))) → c75(TOP(take(proper(z0), proper(z1))), PROPER(take(z0, z1)))
TOP(ok(natsFrom(z0))) → c76(TOP(mark(cons(z0, natsFrom(s(z0))))), ACTIVE(natsFrom(z0)))
TOP(ok(fst(pair(z0, z1)))) → c76(TOP(mark(z0)), ACTIVE(fst(pair(z0, z1))))
TOP(ok(snd(pair(z0, z1)))) → c76(TOP(mark(z1)), ACTIVE(snd(pair(z0, z1))))
TOP(ok(splitAt(0, z0))) → c76(TOP(mark(pair(nil, z0))), ACTIVE(splitAt(0, z0)))
TOP(ok(splitAt(s(z0), cons(z1, z2)))) → c76(TOP(mark(u(splitAt(z0, z2), z0, z1, z2))), ACTIVE(splitAt(s(z0), cons(z1, z2))))
TOP(ok(u(pair(z0, z1), z2, z3, z4))) → c76(TOP(mark(pair(cons(z3, z0), z1))), ACTIVE(u(pair(z0, z1), z2, z3, z4)))
TOP(ok(head(cons(z0, z1)))) → c76(TOP(mark(z0)), ACTIVE(head(cons(z0, z1))))
TOP(ok(tail(cons(z0, z1)))) → c76(TOP(mark(z1)), ACTIVE(tail(cons(z0, z1))))
TOP(ok(sel(z0, z1))) → c76(TOP(mark(head(afterNth(z0, z1)))), ACTIVE(sel(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(mark(fst(splitAt(z0, z1)))), ACTIVE(take(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(mark(snd(splitAt(z0, z1)))), ACTIVE(afterNth(z0, z1)))
TOP(ok(natsFrom(z0))) → c76(TOP(natsFrom(active(z0))), ACTIVE(natsFrom(z0)))
TOP(ok(cons(z0, z1))) → c76(TOP(cons(active(z0), z1)), ACTIVE(cons(z0, z1)))
TOP(ok(s(z0))) → c76(TOP(s(active(z0))), ACTIVE(s(z0)))
TOP(ok(fst(z0))) → c76(TOP(fst(active(z0))), ACTIVE(fst(z0)))
TOP(ok(pair(z0, z1))) → c76(TOP(pair(active(z0), z1)), ACTIVE(pair(z0, z1)))
TOP(ok(pair(z0, z1))) → c76(TOP(pair(z0, active(z1))), ACTIVE(pair(z0, z1)))
TOP(ok(snd(z0))) → c76(TOP(snd(active(z0))), ACTIVE(snd(z0)))
TOP(ok(splitAt(z0, z1))) → c76(TOP(splitAt(active(z0), z1)), ACTIVE(splitAt(z0, z1)))
TOP(ok(splitAt(z0, z1))) → c76(TOP(splitAt(z0, active(z1))), ACTIVE(splitAt(z0, z1)))
TOP(ok(u(z0, z1, z2, z3))) → c76(TOP(u(active(z0), z1, z2, z3)), ACTIVE(u(z0, z1, z2, z3)))
TOP(ok(head(z0))) → c76(TOP(head(active(z0))), ACTIVE(head(z0)))
TOP(ok(tail(z0))) → c76(TOP(tail(active(z0))), ACTIVE(tail(z0)))
TOP(ok(sel(z0, z1))) → c76(TOP(sel(active(z0), z1)), ACTIVE(sel(z0, z1)))
TOP(ok(sel(z0, z1))) → c76(TOP(sel(z0, active(z1))), ACTIVE(sel(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(afterNth(active(z0), z1)), ACTIVE(afterNth(z0, z1)))
TOP(ok(afterNth(z0, z1))) → c76(TOP(afterNth(z0, active(z1))), ACTIVE(afterNth(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(take(active(z0), z1)), ACTIVE(take(z0, z1)))
TOP(ok(take(z0, z1))) → c76(TOP(take(z0, active(z1))), ACTIVE(take(z0, z1)))
Tuples:
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:none
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
active, u, splitAt, pair, cons, natsFrom, s, fst, snd, head, tail, sel, afterNth, take, proper
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
active(natsFrom(z0)) → mark(cons(z0, natsFrom(s(z0))))
active(fst(pair(z0, z1))) → mark(z0)
active(snd(pair(z0, z1))) → mark(z1)
active(splitAt(0, z0)) → mark(pair(nil, z0))
active(splitAt(s(z0), cons(z1, z2))) → mark(u(splitAt(z0, z2), z0, z1, z2))
active(u(pair(z0, z1), z2, z3, z4)) → mark(pair(cons(z3, z0), z1))
active(head(cons(z0, z1))) → mark(z0)
active(tail(cons(z0, z1))) → mark(z1)
active(sel(z0, z1)) → mark(head(afterNth(z0, z1)))
active(take(z0, z1)) → mark(fst(splitAt(z0, z1)))
active(afterNth(z0, z1)) → mark(snd(splitAt(z0, z1)))
active(natsFrom(z0)) → natsFrom(active(z0))
active(cons(z0, z1)) → cons(active(z0), z1)
active(s(z0)) → s(active(z0))
active(fst(z0)) → fst(active(z0))
active(pair(z0, z1)) → pair(active(z0), z1)
active(pair(z0, z1)) → pair(z0, active(z1))
active(snd(z0)) → snd(active(z0))
active(splitAt(z0, z1)) → splitAt(active(z0), z1)
active(splitAt(z0, z1)) → splitAt(z0, active(z1))
active(u(z0, z1, z2, z3)) → u(active(z0), z1, z2, z3)
active(head(z0)) → head(active(z0))
active(tail(z0)) → tail(active(z0))
active(sel(z0, z1)) → sel(active(z0), z1)
active(sel(z0, z1)) → sel(z0, active(z1))
active(afterNth(z0, z1)) → afterNth(active(z0), z1)
active(afterNth(z0, z1)) → afterNth(z0, active(z1))
active(take(z0, z1)) → take(active(z0), z1)
active(take(z0, z1)) → take(z0, active(z1))
u(mark(z0), z1, z2, z3) → mark(u(z0, z1, z2, z3))
u(ok(z0), ok(z1), ok(z2), ok(z3)) → ok(u(z0, z1, z2, z3))
splitAt(z0, mark(z1)) → mark(splitAt(z0, z1))
splitAt(mark(z0), z1) → mark(splitAt(z0, z1))
splitAt(ok(z0), ok(z1)) → ok(splitAt(z0, z1))
pair(mark(z0), z1) → mark(pair(z0, z1))
pair(ok(z0), ok(z1)) → ok(pair(z0, z1))
pair(z0, mark(z1)) → mark(pair(z0, z1))
cons(mark(z0), z1) → mark(cons(z0, z1))
cons(ok(z0), ok(z1)) → ok(cons(z0, z1))
natsFrom(mark(z0)) → mark(natsFrom(z0))
natsFrom(ok(z0)) → ok(natsFrom(z0))
s(mark(z0)) → mark(s(z0))
s(ok(z0)) → ok(s(z0))
fst(mark(z0)) → mark(fst(z0))
fst(ok(z0)) → ok(fst(z0))
snd(mark(z0)) → mark(snd(z0))
snd(ok(z0)) → ok(snd(z0))
head(mark(z0)) → mark(head(z0))
head(ok(z0)) → ok(head(z0))
tail(mark(z0)) → mark(tail(z0))
tail(ok(z0)) → ok(tail(z0))
sel(mark(z0), z1) → mark(sel(z0, z1))
sel(ok(z0), ok(z1)) → ok(sel(z0, z1))
sel(z0, mark(z1)) → mark(sel(z0, z1))
afterNth(mark(z0), z1) → mark(afterNth(z0, z1))
afterNth(ok(z0), ok(z1)) → ok(afterNth(z0, z1))
afterNth(z0, mark(z1)) → mark(afterNth(z0, z1))
take(mark(z0), z1) → mark(take(z0, z1))
take(ok(z0), ok(z1)) → ok(take(z0, z1))
take(z0, mark(z1)) → mark(take(z0, z1))
proper(natsFrom(z0)) → natsFrom(proper(z0))
proper(cons(z0, z1)) → cons(proper(z0), proper(z1))
proper(s(z0)) → s(proper(z0))
proper(fst(z0)) → fst(proper(z0))
proper(pair(z0, z1)) → pair(proper(z0), proper(z1))
proper(snd(z0)) → snd(proper(z0))
proper(splitAt(z0, z1)) → splitAt(proper(z0), proper(z1))
proper(0) → ok(0)
proper(nil) → ok(nil)
proper(u(z0, z1, z2, z3)) → u(proper(z0), proper(z1), proper(z2), proper(z3))
proper(head(z0)) → head(proper(z0))
proper(tail(z0)) → tail(proper(z0))
proper(sel(z0, z1)) → sel(proper(z0), proper(z1))
proper(afterNth(z0, z1)) → afterNth(proper(z0), proper(z1))
proper(take(z0, z1)) → take(proper(z0), proper(z1))
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:none
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = 0
POL(CONS(x1, x2)) = 0
POL(FST(x1)) = 0
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = x1
POL(S(x1)) = 0
POL(SEL(x1, x2)) = 0
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = 0
POL(TAKE(x1, x2)) = 0
POL(U(x1, x2, x3, x4)) = 0
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [2] + x1
POL(ok(x1)) = [4] + x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = 0
POL(CONS(x1, x2)) = [4]x2
POL(FST(x1)) = 0
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = 0
POL(S(x1)) = 0
POL(SEL(x1, x2)) = 0
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = 0
POL(TAKE(x1, x2)) = 0
POL(U(x1, x2, x3, x4)) = 0
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = 0
POL(ok(x1)) = [2] + x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = x2
POL(CONS(x1, x2)) = [2]x1 + [2]x2
POL(FST(x1)) = 0
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = x1
POL(PAIR(x1, x2)) = 0
POL(S(x1)) = 0
POL(SEL(x1, x2)) = 0
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = 0
POL(TAKE(x1, x2)) = 0
POL(U(x1, x2, x3, x4)) = 0
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [4] + x1
POL(ok(x1)) = [1] + x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = 0
POL(CONS(x1, x2)) = [2]x2
POL(FST(x1)) = 0
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = 0
POL(S(x1)) = 0
POL(SEL(x1, x2)) = 0
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = 0
POL(TAKE(x1, x2)) = 0
POL(U(x1, x2, x3, x4)) = [2]x2
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [3]
POL(ok(x1)) = [2] + x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = [2]x2
POL(CONS(x1, x2)) = 0
POL(FST(x1)) = 0
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = [2]x1
POL(PAIR(x1, x2)) = [2]x2
POL(S(x1)) = 0
POL(SEL(x1, x2)) = 0
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = 0
POL(TAKE(x1, x2)) = 0
POL(U(x1, x2, x3, x4)) = [3]x2 + [3]x3
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [1] + x1
POL(ok(x1)) = x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = 0
POL(CONS(x1, x2)) = 0
POL(FST(x1)) = [4]x1
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = [4]x2
POL(S(x1)) = 0
POL(SEL(x1, x2)) = [4]x1
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = 0
POL(TAKE(x1, x2)) = 0
POL(U(x1, x2, x3, x4)) = [2]x2 + [4]x4
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [4] + x1
POL(ok(x1)) = x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(ok(z0)) → c36(FST(z0))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = [4]x2
POL(CONS(x1, x2)) = 0
POL(FST(x1)) = 0
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = [4]x1
POL(S(x1)) = 0
POL(SEL(x1, x2)) = 0
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = 0
POL(TAKE(x1, x2)) = x2
POL(U(x1, x2, x3, x4)) = [2]x2
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [1] + x1
POL(ok(x1)) = [2] + x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(ok(z0)) → c36(FST(z0))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
HEAD(mark(z0)) → c47(HEAD(z0))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = [4]x1 + [4]x2
POL(CONS(x1, x2)) = 0
POL(FST(x1)) = 0
POL(HEAD(x1)) = [2]x1
POL(NATSFROM(x1)) = [4]x1
POL(PAIR(x1, x2)) = [2]x1
POL(S(x1)) = 0
POL(SEL(x1, x2)) = 0
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = 0
POL(TAKE(x1, x2)) = [2]x2
POL(U(x1, x2, x3, x4)) = [4]x3 + x4
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [2] + x1
POL(ok(x1)) = x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(ok(z0)) → c36(FST(z0))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
HEAD(mark(z0)) → c47(HEAD(z0))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = 0
POL(CONS(x1, x2)) = x2
POL(FST(x1)) = 0
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = 0
POL(S(x1)) = 0
POL(SEL(x1, x2)) = x1
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = x1
POL(TAKE(x1, x2)) = [2]x2
POL(U(x1, x2, x3, x4)) = 0
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [1] + x1
POL(ok(x1)) = [1] + x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(ok(z0)) → c36(FST(z0))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
HEAD(ok(z0)) → c48(HEAD(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
HEAD(mark(z0)) → c47(HEAD(z0))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
FST(ok(z0)) → c36(FST(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = [4]x2
POL(CONS(x1, x2)) = [2]x2
POL(FST(x1)) = [4]x1
POL(HEAD(x1)) = [4]x1
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = [2]x1
POL(S(x1)) = 0
POL(SEL(x1, x2)) = [3]x1 + [4]x2
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = [3]x1
POL(TAKE(x1, x2)) = [4]x2
POL(U(x1, x2, x3, x4)) = [4]x2 + [3]x3 + [2]x4
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [1] + x1
POL(ok(x1)) = [4] + x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
HEAD(mark(z0)) → c47(HEAD(z0))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
FST(ok(z0)) → c36(FST(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = [2]x1 + [4]x2
POL(CONS(x1, x2)) = [2]x2
POL(FST(x1)) = 0
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = [4]x2
POL(S(x1)) = 0
POL(SEL(x1, x2)) = 0
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = [3]x1
POL(TAKE(x1, x2)) = [4]x1 + [2]x2
POL(U(x1, x2, x3, x4)) = x3 + [2]x4
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [2] + x1
POL(ok(x1)) = [3] + x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
HEAD(mark(z0)) → c47(HEAD(z0))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
FST(ok(z0)) → c36(FST(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
SND(ok(z0)) → c41(SND(z0))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = [4]x2
POL(CONS(x1, x2)) = x2
POL(FST(x1)) = 0
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = 0
POL(S(x1)) = 0
POL(SEL(x1, x2)) = [4]x1
POL(SND(x1)) = [4]x1
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = [4]x1
POL(TAKE(x1, x2)) = [4]x1 + [4]x2
POL(U(x1, x2, x3, x4)) = 0
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = x1
POL(ok(x1)) = [4] + x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
SND(mark(z0)) → c40(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
HEAD(mark(z0)) → c47(HEAD(z0))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
FST(ok(z0)) → c36(FST(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
SND(ok(z0)) → c41(SND(z0))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
S(ok(z0)) → c34(S(z0))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = [2]x1 + [2]x2
POL(CONS(x1, x2)) = [3]x1
POL(FST(x1)) = 0
POL(HEAD(x1)) = [2]x1
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = [4]x1
POL(S(x1)) = [4]x1
POL(SEL(x1, x2)) = [2]x1 + [4]x2
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = [4]x1
POL(TAIL(x1)) = 0
POL(TAKE(x1, x2)) = [2]x1
POL(U(x1, x2, x3, x4)) = [3]x2 + [2]x4
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = x1
POL(ok(x1)) = [4] + x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
SND(mark(z0)) → c40(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
HEAD(mark(z0)) → c47(HEAD(z0))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
FST(ok(z0)) → c36(FST(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
SND(ok(z0)) → c41(SND(z0))
S(ok(z0)) → c34(S(z0))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = [4]x2
POL(CONS(x1, x2)) = 0
POL(FST(x1)) = 0
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = 0
POL(S(x1)) = 0
POL(SEL(x1, x2)) = [2]x1
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = x2
POL(TAIL(x1)) = 0
POL(TAKE(x1, x2)) = 0
POL(U(x1, x2, x3, x4)) = [2]x3
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [1] + x1
POL(ok(x1)) = x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
SND(mark(z0)) → c40(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
HEAD(mark(z0)) → c47(HEAD(z0))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
FST(ok(z0)) → c36(FST(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
SND(ok(z0)) → c41(SND(z0))
S(ok(z0)) → c34(S(z0))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
SND(mark(z0)) → c40(SND(z0))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = [4]x1 + [3]x2
POL(CONS(x1, x2)) = [2]x2
POL(FST(x1)) = 0
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = [2]x1
POL(PAIR(x1, x2)) = 0
POL(S(x1)) = 0
POL(SEL(x1, x2)) = [3]x1 + [4]x2
POL(SND(x1)) = x1
POL(SPLITAT(x1, x2)) = 0
POL(TAIL(x1)) = x1
POL(TAKE(x1, x2)) = [4]x1 + [2]x2
POL(U(x1, x2, x3, x4)) = [2]x3 + [3]x4
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [1] + x1
POL(ok(x1)) = x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
HEAD(mark(z0)) → c47(HEAD(z0))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
FST(ok(z0)) → c36(FST(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
SND(ok(z0)) → c41(SND(z0))
S(ok(z0)) → c34(S(z0))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SND(mark(z0)) → c40(SND(z0))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = [4]x1
POL(CONS(x1, x2)) = 0
POL(FST(x1)) = [3]x1
POL(HEAD(x1)) = x1
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = x2
POL(S(x1)) = 0
POL(SEL(x1, x2)) = [2]x1
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = x1 + [4]x2
POL(TAIL(x1)) = 0
POL(TAKE(x1, x2)) = [4]x1 + [3]x2
POL(U(x1, x2, x3, x4)) = x2 + [3]x4
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [4] + x1
POL(ok(x1)) = x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
S(mark(z0)) → c33(S(z0))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
HEAD(mark(z0)) → c47(HEAD(z0))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
FST(ok(z0)) → c36(FST(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
SND(ok(z0)) → c41(SND(z0))
S(ok(z0)) → c34(S(z0))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
S(mark(z0)) → c33(S(z0))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = [3]x1
POL(CONS(x1, x2)) = [2]x2
POL(FST(x1)) = [3]x1
POL(HEAD(x1)) = 0
POL(NATSFROM(x1)) = [2]x1
POL(PAIR(x1, x2)) = [4]x2
POL(S(x1)) = x1
POL(SEL(x1, x2)) = 0
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = [3]x1 + [3]x2
POL(TAIL(x1)) = [4]x1
POL(TAKE(x1, x2)) = [2]x2
POL(U(x1, x2, x3, x4)) = [3]x2 + [2]x3
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [1] + x1
POL(ok(x1)) = x1
S tuples:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
K tuples:
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
HEAD(mark(z0)) → c47(HEAD(z0))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
FST(ok(z0)) → c36(FST(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
SND(ok(z0)) → c41(SND(z0))
S(ok(z0)) → c34(S(z0))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
S(mark(z0)) → c33(S(z0))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59
We considered the (Usable) Rules:none
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
The order we found is given by the following interpretation:
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
POL(AFTERNTH(x1, x2)) = [4]x1
POL(CONS(x1, x2)) = [2]x1 + x2
POL(FST(x1)) = 0
POL(HEAD(x1)) = [4]x1
POL(NATSFROM(x1)) = 0
POL(PAIR(x1, x2)) = [2]x2
POL(S(x1)) = [3]x1
POL(SEL(x1, x2)) = [3]x2
POL(SND(x1)) = 0
POL(SPLITAT(x1, x2)) = [4]x1 + [3]x2
POL(TAIL(x1)) = 0
POL(TAKE(x1, x2)) = [4]x1 + [4]x2
POL(U(x1, x2, x3, x4)) = [4]x1 + [2]x3
POL(c29(x1)) = x1
POL(c30(x1)) = x1
POL(c31(x1)) = x1
POL(c32(x1)) = x1
POL(c33(x1)) = x1
POL(c34(x1)) = x1
POL(c35(x1)) = x1
POL(c36(x1)) = x1
POL(c37(x1)) = x1
POL(c38(x1)) = x1
POL(c39(x1)) = x1
POL(c40(x1)) = x1
POL(c41(x1)) = x1
POL(c42(x1)) = x1
POL(c43(x1)) = x1
POL(c44(x1)) = x1
POL(c45(x1)) = x1
POL(c46(x1)) = x1
POL(c47(x1)) = x1
POL(c48(x1)) = x1
POL(c49(x1)) = x1
POL(c50(x1)) = x1
POL(c51(x1)) = x1
POL(c52(x1)) = x1
POL(c53(x1)) = x1
POL(c54(x1)) = x1
POL(c55(x1)) = x1
POL(c56(x1)) = x1
POL(c57(x1)) = x1
POL(c58(x1)) = x1
POL(c59(x1)) = x1
POL(mark(x1)) = [1] + x1
POL(ok(x1)) = x1
S tuples:none
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
S(mark(z0)) → c33(S(z0))
S(ok(z0)) → c34(S(z0))
FST(mark(z0)) → c35(FST(z0))
FST(ok(z0)) → c36(FST(z0))
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SND(ok(z0)) → c41(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
HEAD(mark(z0)) → c47(HEAD(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
Defined Rule Symbols:none
PAIR(mark(z0), z1) → c37(PAIR(z0, z1))
PAIR(ok(z0), ok(z1)) → c39(PAIR(z0, z1))
CONS(ok(z0), ok(z1)) → c32(CONS(z0, z1))
NATSFROM(mark(z0)) → c29(NATSFROM(z0))
NATSFROM(ok(z0)) → c30(NATSFROM(z0))
CONS(mark(z0), z1) → c31(CONS(z0, z1))
AFTERNTH(z0, mark(z1)) → c55(AFTERNTH(z0, z1))
AFTERNTH(ok(z0), ok(z1)) → c56(AFTERNTH(z0, z1))
U(ok(z0), ok(z1), ok(z2), ok(z3)) → c46(U(z0, z1, z2, z3))
PAIR(z0, mark(z1)) → c38(PAIR(z0, z1))
FST(mark(z0)) → c35(FST(z0))
SEL(mark(z0), z1) → c51(SEL(z0, z1))
TAKE(z0, mark(z1)) → c58(TAKE(z0, z1))
TAKE(ok(z0), ok(z1)) → c59(TAKE(z0, z1))
HEAD(mark(z0)) → c47(HEAD(z0))
AFTERNTH(mark(z0), z1) → c54(AFTERNTH(z0, z1))
TAIL(mark(z0)) → c49(TAIL(z0))
TAIL(ok(z0)) → c50(TAIL(z0))
SEL(ok(z0), ok(z1)) → c53(SEL(z0, z1))
FST(ok(z0)) → c36(FST(z0))
HEAD(ok(z0)) → c48(HEAD(z0))
SEL(z0, mark(z1)) → c52(SEL(z0, z1))
TAKE(mark(z0), z1) → c57(TAKE(z0, z1))
SND(ok(z0)) → c41(SND(z0))
S(ok(z0)) → c34(S(z0))
SPLITAT(ok(z0), ok(z1)) → c44(SPLITAT(z0, z1))
SPLITAT(z0, mark(z1)) → c43(SPLITAT(z0, z1))
SND(mark(z0)) → c40(SND(z0))
SPLITAT(mark(z0), z1) → c42(SPLITAT(z0, z1))
S(mark(z0)) → c33(S(z0))
U(mark(z0), z1, z2, z3) → c45(U(z0, z1, z2, z3))
NATSFROM, CONS, S, FST, PAIR, SND, SPLITAT, U, HEAD, TAIL, SEL, AFTERNTH, TAKE
c29, c30, c31, c32, c33, c34, c35, c36, c37, c38, c39, c40, c41, c42, c43, c44, c45, c46, c47, c48, c49, c50, c51, c52, c53, c54, c55, c56, c57, c58, c59