6.90/2.67 YES 7.21/2.77 proof of /export/starexec/sandbox/benchmark/theBenchmark.xml 7.21/2.77 # AProVE Commit ID: 48fb2092695e11cc9f56e44b17a92a5f88ffb256 marcel 20180622 unpublished dirty 7.21/2.77 7.21/2.77 7.21/2.77 Termination w.r.t. Q of the given QTRS could be proven: 7.21/2.77 7.21/2.77 (0) QTRS 7.21/2.77 (1) QTRSToCSRProof [SOUND, 0 ms] 7.21/2.77 (2) CSR 7.21/2.77 (3) CSDependencyPairsProof [EQUIVALENT, 148 ms] 7.21/2.77 (4) QCSDP 7.21/2.77 (5) QCSDependencyGraphProof [EQUIVALENT, 0 ms] 7.21/2.77 (6) AND 7.21/2.77 (7) QCSDP 7.21/2.77 (8) QCSUsableRulesProof [EQUIVALENT, 21 ms] 7.21/2.77 (9) QCSDP 7.21/2.77 (10) QCSDPMuMonotonicPoloProof [EQUIVALENT, 64 ms] 7.21/2.77 (11) QCSDP 7.21/2.77 (12) QCSDependencyGraphProof [EQUIVALENT, 0 ms] 7.21/2.77 (13) AND 7.21/2.77 (14) QCSDP 7.21/2.77 (15) QCSDPSubtermProof [EQUIVALENT, 0 ms] 7.21/2.77 (16) QCSDP 7.21/2.77 (17) PIsEmptyProof [EQUIVALENT, 0 ms] 7.21/2.77 (18) YES 7.21/2.77 (19) QCSDP 7.21/2.77 (20) QCSDPSubtermProof [EQUIVALENT, 0 ms] 7.21/2.77 (21) QCSDP 7.21/2.77 (22) PIsEmptyProof [EQUIVALENT, 0 ms] 7.21/2.77 (23) YES 7.21/2.77 (24) QCSDP 7.21/2.77 (25) QCSDPSubtermProof [EQUIVALENT, 2 ms] 7.21/2.77 (26) QCSDP 7.21/2.77 (27) QCSDependencyGraphProof [EQUIVALENT, 0 ms] 7.21/2.77 (28) TRUE 7.21/2.77 (29) QCSDP 7.21/2.77 (30) QCSDPSubtermProof [EQUIVALENT, 12 ms] 7.21/2.77 (31) QCSDP 7.21/2.77 (32) QCSDependencyGraphProof [EQUIVALENT, 0 ms] 7.21/2.77 (33) TRUE 7.21/2.77 7.21/2.77 7.21/2.77 ---------------------------------------- 7.21/2.77 7.21/2.77 (0) 7.21/2.77 Obligation: 7.21/2.77 Q restricted rewrite system: 7.21/2.77 The TRS R consists of the following rules: 7.21/2.77 7.21/2.77 active(U101(tt, V2)) -> mark(U102(isLNat(V2))) 7.21/2.77 active(U102(tt)) -> mark(tt) 7.21/2.77 active(U11(tt, N, XS)) -> mark(U12(isLNat(XS), N, XS)) 7.21/2.77 active(U111(tt)) -> mark(tt) 7.21/2.77 active(U12(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 7.21/2.77 active(U121(tt)) -> mark(tt) 7.21/2.77 active(U131(tt, V2)) -> mark(U132(isLNat(V2))) 7.21/2.77 active(U132(tt)) -> mark(tt) 7.21/2.77 active(U141(tt, V2)) -> mark(U142(isLNat(V2))) 7.21/2.77 active(U142(tt)) -> mark(tt) 7.21/2.77 active(U151(tt, V2)) -> mark(U152(isLNat(V2))) 7.21/2.77 active(U152(tt)) -> mark(tt) 7.21/2.77 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 7.21/2.77 active(U171(tt, N, XS)) -> mark(U172(isLNat(XS), N, XS)) 7.21/2.77 active(U172(tt, N, XS)) -> mark(head(afterNth(N, XS))) 7.21/2.77 active(U181(tt, Y)) -> mark(U182(isLNat(Y), Y)) 7.21/2.77 active(U182(tt, Y)) -> mark(Y) 7.21/2.77 active(U191(tt, XS)) -> mark(pair(nil, XS)) 7.21/2.77 active(U201(tt, N, X, XS)) -> mark(U202(isNatural(X), N, X, XS)) 7.21/2.77 active(U202(tt, N, X, XS)) -> mark(U203(isLNat(XS), N, X, XS)) 7.21/2.77 active(U203(tt, N, X, XS)) -> mark(U204(splitAt(N, XS), X)) 7.21/2.77 active(U204(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 7.21/2.77 active(U21(tt, X, Y)) -> mark(U22(isLNat(Y), X)) 7.21/2.77 active(U211(tt, XS)) -> mark(U212(isLNat(XS), XS)) 7.21/2.77 active(U212(tt, XS)) -> mark(XS) 7.21/2.77 active(U22(tt, X)) -> mark(X) 7.21/2.77 active(U221(tt, N, XS)) -> mark(U222(isLNat(XS), N, XS)) 7.21/2.77 active(U222(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 7.21/2.77 active(U31(tt, N, XS)) -> mark(U32(isLNat(XS), N)) 7.21/2.77 active(U32(tt, N)) -> mark(N) 7.21/2.77 active(U41(tt, V2)) -> mark(U42(isLNat(V2))) 7.21/2.77 active(U42(tt)) -> mark(tt) 7.21/2.77 active(U51(tt, V2)) -> mark(U52(isLNat(V2))) 7.21/2.77 active(U52(tt)) -> mark(tt) 7.21/2.77 active(U61(tt)) -> mark(tt) 7.21/2.77 active(U71(tt)) -> mark(tt) 7.21/2.77 active(U81(tt)) -> mark(tt) 7.21/2.77 active(U91(tt)) -> mark(tt) 7.21/2.77 active(afterNth(N, XS)) -> mark(U11(isNatural(N), N, XS)) 7.21/2.77 active(fst(pair(X, Y))) -> mark(U21(isLNat(X), X, Y)) 7.21/2.77 active(head(cons(N, XS))) -> mark(U31(isNatural(N), N, XS)) 7.21/2.77 active(isLNat(nil)) -> mark(tt) 7.21/2.77 active(isLNat(afterNth(V1, V2))) -> mark(U41(isNatural(V1), V2)) 7.21/2.77 active(isLNat(cons(V1, V2))) -> mark(U51(isNatural(V1), V2)) 7.21/2.77 active(isLNat(fst(V1))) -> mark(U61(isPLNat(V1))) 7.21/2.77 active(isLNat(natsFrom(V1))) -> mark(U71(isNatural(V1))) 7.21/2.77 active(isLNat(snd(V1))) -> mark(U81(isPLNat(V1))) 7.21/2.77 active(isLNat(tail(V1))) -> mark(U91(isLNat(V1))) 7.21/2.77 active(isLNat(take(V1, V2))) -> mark(U101(isNatural(V1), V2)) 7.21/2.77 active(isNatural(0)) -> mark(tt) 7.21/2.77 active(isNatural(head(V1))) -> mark(U111(isLNat(V1))) 7.21/2.77 active(isNatural(s(V1))) -> mark(U121(isNatural(V1))) 7.21/2.77 active(isNatural(sel(V1, V2))) -> mark(U131(isNatural(V1), V2)) 7.21/2.77 active(isPLNat(pair(V1, V2))) -> mark(U141(isLNat(V1), V2)) 7.21/2.77 active(isPLNat(splitAt(V1, V2))) -> mark(U151(isNatural(V1), V2)) 7.21/2.77 active(natsFrom(N)) -> mark(U161(isNatural(N), N)) 7.21/2.77 active(sel(N, XS)) -> mark(U171(isNatural(N), N, XS)) 7.21/2.77 active(snd(pair(X, Y))) -> mark(U181(isLNat(X), Y)) 7.21/2.77 active(splitAt(0, XS)) -> mark(U191(isLNat(XS), XS)) 7.21/2.77 active(splitAt(s(N), cons(X, XS))) -> mark(U201(isNatural(N), N, X, XS)) 7.21/2.77 active(tail(cons(N, XS))) -> mark(U211(isNatural(N), XS)) 7.21/2.77 active(take(N, XS)) -> mark(U221(isNatural(N), N, XS)) 7.21/2.77 active(U101(X1, X2)) -> U101(active(X1), X2) 7.21/2.77 active(U102(X)) -> U102(active(X)) 7.21/2.77 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 7.21/2.77 active(U12(X1, X2, X3)) -> U12(active(X1), X2, X3) 7.21/2.77 active(U111(X)) -> U111(active(X)) 7.21/2.77 active(snd(X)) -> snd(active(X)) 7.21/2.77 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 7.21/2.77 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 7.21/2.77 active(U121(X)) -> U121(active(X)) 7.21/2.77 active(U131(X1, X2)) -> U131(active(X1), X2) 7.21/2.77 active(U132(X)) -> U132(active(X)) 7.21/2.77 active(U141(X1, X2)) -> U141(active(X1), X2) 7.21/2.77 active(U142(X)) -> U142(active(X)) 7.21/2.77 active(U151(X1, X2)) -> U151(active(X1), X2) 7.21/2.77 active(U152(X)) -> U152(active(X)) 7.21/2.77 active(U161(X1, X2)) -> U161(active(X1), X2) 7.21/2.77 active(cons(X1, X2)) -> cons(active(X1), X2) 7.21/2.77 active(natsFrom(X)) -> natsFrom(active(X)) 7.21/2.77 active(s(X)) -> s(active(X)) 7.21/2.77 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 7.21/2.77 active(U172(X1, X2, X3)) -> U172(active(X1), X2, X3) 7.21/2.77 active(head(X)) -> head(active(X)) 7.21/2.77 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 7.21/2.77 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 7.21/2.77 active(U181(X1, X2)) -> U181(active(X1), X2) 7.21/2.77 active(U182(X1, X2)) -> U182(active(X1), X2) 7.21/2.77 active(U191(X1, X2)) -> U191(active(X1), X2) 7.21/2.77 active(pair(X1, X2)) -> pair(active(X1), X2) 7.21/2.77 active(pair(X1, X2)) -> pair(X1, active(X2)) 7.21/2.77 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 7.21/2.77 active(U202(X1, X2, X3, X4)) -> U202(active(X1), X2, X3, X4) 7.21/2.77 active(U203(X1, X2, X3, X4)) -> U203(active(X1), X2, X3, X4) 7.21/2.77 active(U204(X1, X2)) -> U204(active(X1), X2) 7.21/2.77 active(U21(X1, X2, X3)) -> U21(active(X1), X2, X3) 7.21/2.77 active(U22(X1, X2)) -> U22(active(X1), X2) 7.21/2.77 active(U211(X1, X2)) -> U211(active(X1), X2) 7.21/2.77 active(U212(X1, X2)) -> U212(active(X1), X2) 7.21/2.77 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 7.21/2.77 active(U222(X1, X2, X3)) -> U222(active(X1), X2, X3) 7.21/2.77 active(fst(X)) -> fst(active(X)) 7.21/2.77 active(U31(X1, X2, X3)) -> U31(active(X1), X2, X3) 7.21/2.77 active(U32(X1, X2)) -> U32(active(X1), X2) 7.21/2.77 active(U41(X1, X2)) -> U41(active(X1), X2) 7.21/2.77 active(U42(X)) -> U42(active(X)) 7.21/2.77 active(U51(X1, X2)) -> U51(active(X1), X2) 7.21/2.77 active(U52(X)) -> U52(active(X)) 7.21/2.77 active(U61(X)) -> U61(active(X)) 7.21/2.77 active(U71(X)) -> U71(active(X)) 7.21/2.77 active(U81(X)) -> U81(active(X)) 7.21/2.77 active(U91(X)) -> U91(active(X)) 7.21/2.77 active(tail(X)) -> tail(active(X)) 7.21/2.77 active(take(X1, X2)) -> take(active(X1), X2) 7.21/2.77 active(take(X1, X2)) -> take(X1, active(X2)) 7.21/2.77 active(sel(X1, X2)) -> sel(active(X1), X2) 7.21/2.77 active(sel(X1, X2)) -> sel(X1, active(X2)) 7.21/2.77 U101(mark(X1), X2) -> mark(U101(X1, X2)) 7.21/2.77 U102(mark(X)) -> mark(U102(X)) 7.21/2.77 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 7.21/2.77 U12(mark(X1), X2, X3) -> mark(U12(X1, X2, X3)) 7.21/2.77 U111(mark(X)) -> mark(U111(X)) 7.21/2.77 snd(mark(X)) -> mark(snd(X)) 7.21/2.77 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 7.21/2.77 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 7.21/2.77 U121(mark(X)) -> mark(U121(X)) 7.21/2.77 U131(mark(X1), X2) -> mark(U131(X1, X2)) 7.21/2.77 U132(mark(X)) -> mark(U132(X)) 7.21/2.77 U141(mark(X1), X2) -> mark(U141(X1, X2)) 7.21/2.77 U142(mark(X)) -> mark(U142(X)) 7.21/2.77 U151(mark(X1), X2) -> mark(U151(X1, X2)) 7.21/2.77 U152(mark(X)) -> mark(U152(X)) 7.21/2.77 U161(mark(X1), X2) -> mark(U161(X1, X2)) 7.21/2.77 cons(mark(X1), X2) -> mark(cons(X1, X2)) 7.21/2.77 natsFrom(mark(X)) -> mark(natsFrom(X)) 7.21/2.77 s(mark(X)) -> mark(s(X)) 7.21/2.77 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 7.21/2.77 U172(mark(X1), X2, X3) -> mark(U172(X1, X2, X3)) 7.21/2.77 head(mark(X)) -> mark(head(X)) 7.21/2.77 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 7.21/2.77 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 7.21/2.77 U181(mark(X1), X2) -> mark(U181(X1, X2)) 7.21/2.77 U182(mark(X1), X2) -> mark(U182(X1, X2)) 7.21/2.77 U191(mark(X1), X2) -> mark(U191(X1, X2)) 7.21/2.77 pair(mark(X1), X2) -> mark(pair(X1, X2)) 7.21/2.77 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 7.21/2.77 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 7.21/2.77 U202(mark(X1), X2, X3, X4) -> mark(U202(X1, X2, X3, X4)) 7.21/2.77 U203(mark(X1), X2, X3, X4) -> mark(U203(X1, X2, X3, X4)) 7.21/2.77 U204(mark(X1), X2) -> mark(U204(X1, X2)) 7.21/2.77 U21(mark(X1), X2, X3) -> mark(U21(X1, X2, X3)) 7.21/2.77 U22(mark(X1), X2) -> mark(U22(X1, X2)) 7.21/2.77 U211(mark(X1), X2) -> mark(U211(X1, X2)) 7.21/2.77 U212(mark(X1), X2) -> mark(U212(X1, X2)) 7.21/2.77 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 7.21/2.77 U222(mark(X1), X2, X3) -> mark(U222(X1, X2, X3)) 7.21/2.77 fst(mark(X)) -> mark(fst(X)) 7.21/2.77 U31(mark(X1), X2, X3) -> mark(U31(X1, X2, X3)) 7.21/2.77 U32(mark(X1), X2) -> mark(U32(X1, X2)) 7.21/2.77 U41(mark(X1), X2) -> mark(U41(X1, X2)) 7.21/2.77 U42(mark(X)) -> mark(U42(X)) 7.21/2.77 U51(mark(X1), X2) -> mark(U51(X1, X2)) 7.21/2.77 U52(mark(X)) -> mark(U52(X)) 7.21/2.77 U61(mark(X)) -> mark(U61(X)) 7.21/2.77 U71(mark(X)) -> mark(U71(X)) 7.21/2.77 U81(mark(X)) -> mark(U81(X)) 7.21/2.77 U91(mark(X)) -> mark(U91(X)) 7.21/2.77 tail(mark(X)) -> mark(tail(X)) 7.21/2.77 take(mark(X1), X2) -> mark(take(X1, X2)) 7.21/2.77 take(X1, mark(X2)) -> mark(take(X1, X2)) 7.21/2.77 sel(mark(X1), X2) -> mark(sel(X1, X2)) 7.21/2.77 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 7.21/2.77 proper(U101(X1, X2)) -> U101(proper(X1), proper(X2)) 7.21/2.77 proper(tt) -> ok(tt) 7.21/2.77 proper(U102(X)) -> U102(proper(X)) 7.21/2.77 proper(isLNat(X)) -> isLNat(proper(X)) 7.21/2.77 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(U12(X1, X2, X3)) -> U12(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(U111(X)) -> U111(proper(X)) 7.21/2.77 proper(snd(X)) -> snd(proper(X)) 7.21/2.77 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 7.21/2.77 proper(U121(X)) -> U121(proper(X)) 7.21/2.77 proper(U131(X1, X2)) -> U131(proper(X1), proper(X2)) 7.21/2.77 proper(U132(X)) -> U132(proper(X)) 7.21/2.77 proper(U141(X1, X2)) -> U141(proper(X1), proper(X2)) 7.21/2.77 proper(U142(X)) -> U142(proper(X)) 7.21/2.77 proper(U151(X1, X2)) -> U151(proper(X1), proper(X2)) 7.21/2.77 proper(U152(X)) -> U152(proper(X)) 7.21/2.77 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 7.21/2.77 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 7.21/2.77 proper(natsFrom(X)) -> natsFrom(proper(X)) 7.21/2.77 proper(s(X)) -> s(proper(X)) 7.21/2.77 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(U172(X1, X2, X3)) -> U172(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(head(X)) -> head(proper(X)) 7.21/2.77 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 7.21/2.77 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 7.21/2.77 proper(U182(X1, X2)) -> U182(proper(X1), proper(X2)) 7.21/2.77 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 7.21/2.77 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 7.21/2.77 proper(nil) -> ok(nil) 7.21/2.77 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 7.21/2.77 proper(U202(X1, X2, X3, X4)) -> U202(proper(X1), proper(X2), proper(X3), proper(X4)) 7.21/2.77 proper(isNatural(X)) -> isNatural(proper(X)) 7.21/2.77 proper(U203(X1, X2, X3, X4)) -> U203(proper(X1), proper(X2), proper(X3), proper(X4)) 7.21/2.77 proper(U204(X1, X2)) -> U204(proper(X1), proper(X2)) 7.21/2.77 proper(U21(X1, X2, X3)) -> U21(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(U22(X1, X2)) -> U22(proper(X1), proper(X2)) 7.21/2.77 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 7.21/2.77 proper(U212(X1, X2)) -> U212(proper(X1), proper(X2)) 7.21/2.77 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(U222(X1, X2, X3)) -> U222(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(fst(X)) -> fst(proper(X)) 7.21/2.77 proper(U31(X1, X2, X3)) -> U31(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(U32(X1, X2)) -> U32(proper(X1), proper(X2)) 7.21/2.77 proper(U41(X1, X2)) -> U41(proper(X1), proper(X2)) 7.21/2.77 proper(U42(X)) -> U42(proper(X)) 7.21/2.77 proper(U51(X1, X2)) -> U51(proper(X1), proper(X2)) 7.21/2.77 proper(U52(X)) -> U52(proper(X)) 7.21/2.77 proper(U61(X)) -> U61(proper(X)) 7.21/2.77 proper(U71(X)) -> U71(proper(X)) 7.21/2.77 proper(U81(X)) -> U81(proper(X)) 7.21/2.77 proper(U91(X)) -> U91(proper(X)) 7.21/2.77 proper(isPLNat(X)) -> isPLNat(proper(X)) 7.21/2.77 proper(tail(X)) -> tail(proper(X)) 7.21/2.77 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 7.21/2.77 proper(0) -> ok(0) 7.21/2.77 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 7.21/2.77 U101(ok(X1), ok(X2)) -> ok(U101(X1, X2)) 7.21/2.77 U102(ok(X)) -> ok(U102(X)) 7.21/2.77 isLNat(ok(X)) -> ok(isLNat(X)) 7.21/2.77 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 7.21/2.77 U12(ok(X1), ok(X2), ok(X3)) -> ok(U12(X1, X2, X3)) 7.21/2.77 U111(ok(X)) -> ok(U111(X)) 7.21/2.77 snd(ok(X)) -> ok(snd(X)) 7.21/2.77 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 7.21/2.77 U121(ok(X)) -> ok(U121(X)) 7.21/2.77 U131(ok(X1), ok(X2)) -> ok(U131(X1, X2)) 7.21/2.77 U132(ok(X)) -> ok(U132(X)) 7.21/2.77 U141(ok(X1), ok(X2)) -> ok(U141(X1, X2)) 7.21/2.77 U142(ok(X)) -> ok(U142(X)) 7.21/2.77 U151(ok(X1), ok(X2)) -> ok(U151(X1, X2)) 7.21/2.77 U152(ok(X)) -> ok(U152(X)) 7.21/2.77 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 7.21/2.77 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 7.21/2.77 natsFrom(ok(X)) -> ok(natsFrom(X)) 7.21/2.77 s(ok(X)) -> ok(s(X)) 7.21/2.77 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 7.21/2.77 U172(ok(X1), ok(X2), ok(X3)) -> ok(U172(X1, X2, X3)) 7.21/2.77 head(ok(X)) -> ok(head(X)) 7.21/2.77 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 7.21/2.77 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 7.21/2.77 U182(ok(X1), ok(X2)) -> ok(U182(X1, X2)) 7.21/2.77 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 7.21/2.77 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 7.21/2.77 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 7.21/2.77 U202(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U202(X1, X2, X3, X4)) 7.21/2.77 isNatural(ok(X)) -> ok(isNatural(X)) 7.21/2.77 U203(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U203(X1, X2, X3, X4)) 7.21/2.77 U204(ok(X1), ok(X2)) -> ok(U204(X1, X2)) 7.21/2.77 U21(ok(X1), ok(X2), ok(X3)) -> ok(U21(X1, X2, X3)) 7.21/2.77 U22(ok(X1), ok(X2)) -> ok(U22(X1, X2)) 7.21/2.77 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 7.21/2.77 U212(ok(X1), ok(X2)) -> ok(U212(X1, X2)) 7.21/2.77 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 7.21/2.77 U222(ok(X1), ok(X2), ok(X3)) -> ok(U222(X1, X2, X3)) 7.21/2.77 fst(ok(X)) -> ok(fst(X)) 7.21/2.77 U31(ok(X1), ok(X2), ok(X3)) -> ok(U31(X1, X2, X3)) 7.21/2.77 U32(ok(X1), ok(X2)) -> ok(U32(X1, X2)) 7.21/2.77 U41(ok(X1), ok(X2)) -> ok(U41(X1, X2)) 7.21/2.77 U42(ok(X)) -> ok(U42(X)) 7.21/2.77 U51(ok(X1), ok(X2)) -> ok(U51(X1, X2)) 7.21/2.77 U52(ok(X)) -> ok(U52(X)) 7.21/2.77 U61(ok(X)) -> ok(U61(X)) 7.21/2.77 U71(ok(X)) -> ok(U71(X)) 7.21/2.77 U81(ok(X)) -> ok(U81(X)) 7.21/2.77 U91(ok(X)) -> ok(U91(X)) 7.21/2.77 isPLNat(ok(X)) -> ok(isPLNat(X)) 7.21/2.77 tail(ok(X)) -> ok(tail(X)) 7.21/2.77 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 7.21/2.77 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 7.21/2.77 top(mark(X)) -> top(proper(X)) 7.21/2.77 top(ok(X)) -> top(active(X)) 7.21/2.77 7.21/2.77 The set Q consists of the following terms: 7.21/2.77 7.21/2.77 active(afterNth(x0, x1)) 7.21/2.77 active(isLNat(nil)) 7.21/2.77 active(isLNat(afterNth(x0, x1))) 7.21/2.77 active(isLNat(cons(x0, x1))) 7.21/2.77 active(isLNat(fst(x0))) 7.21/2.77 active(isLNat(natsFrom(x0))) 7.21/2.77 active(isLNat(snd(x0))) 7.21/2.77 active(isLNat(tail(x0))) 7.21/2.77 active(isLNat(take(x0, x1))) 7.21/2.77 active(isNatural(0)) 7.21/2.77 active(isNatural(head(x0))) 7.21/2.77 active(isNatural(s(x0))) 7.21/2.77 active(isNatural(sel(x0, x1))) 7.21/2.77 active(isPLNat(pair(x0, x1))) 7.21/2.77 active(isPLNat(splitAt(x0, x1))) 7.21/2.77 active(natsFrom(x0)) 7.21/2.77 active(sel(x0, x1)) 7.21/2.77 active(take(x0, x1)) 7.21/2.77 active(U101(x0, x1)) 7.21/2.77 active(U102(x0)) 7.21/2.77 active(U11(x0, x1, x2)) 7.21/2.77 active(U12(x0, x1, x2)) 7.21/2.77 active(U111(x0)) 7.21/2.77 active(snd(x0)) 7.21/2.77 active(splitAt(x0, x1)) 7.21/2.77 active(U121(x0)) 7.21/2.77 active(U131(x0, x1)) 7.21/2.77 active(U132(x0)) 7.21/2.77 active(U141(x0, x1)) 7.21/2.77 active(U142(x0)) 7.21/2.77 active(U151(x0, x1)) 7.21/2.77 active(U152(x0)) 7.21/2.77 active(U161(x0, x1)) 7.21/2.77 active(cons(x0, x1)) 7.21/2.77 active(s(x0)) 7.21/2.77 active(U171(x0, x1, x2)) 7.21/2.77 active(U172(x0, x1, x2)) 7.21/2.77 active(head(x0)) 7.21/2.77 active(U181(x0, x1)) 7.21/2.77 active(U182(x0, x1)) 7.21/2.77 active(U191(x0, x1)) 7.21/2.77 active(pair(x0, x1)) 7.21/2.77 active(U201(x0, x1, x2, x3)) 7.21/2.77 active(U202(x0, x1, x2, x3)) 7.21/2.77 active(U203(x0, x1, x2, x3)) 7.21/2.77 active(U204(x0, x1)) 7.21/2.77 active(U21(x0, x1, x2)) 7.21/2.77 active(U22(x0, x1)) 7.21/2.77 active(U211(x0, x1)) 7.21/2.77 active(U212(x0, x1)) 7.21/2.77 active(U221(x0, x1, x2)) 7.21/2.77 active(U222(x0, x1, x2)) 7.21/2.77 active(fst(x0)) 7.21/2.77 active(U31(x0, x1, x2)) 7.21/2.77 active(U32(x0, x1)) 7.21/2.77 active(U41(x0, x1)) 7.21/2.77 active(U42(x0)) 7.21/2.77 active(U51(x0, x1)) 7.21/2.77 active(U52(x0)) 7.21/2.77 active(U61(x0)) 7.21/2.77 active(U71(x0)) 7.21/2.77 active(U81(x0)) 7.21/2.77 active(U91(x0)) 7.21/2.77 active(tail(x0)) 7.21/2.77 U101(mark(x0), x1) 7.21/2.77 U102(mark(x0)) 7.21/2.77 U11(mark(x0), x1, x2) 7.21/2.77 U12(mark(x0), x1, x2) 7.21/2.77 U111(mark(x0)) 7.21/2.77 snd(mark(x0)) 7.21/2.77 splitAt(mark(x0), x1) 7.21/2.77 splitAt(x0, mark(x1)) 7.21/2.77 U121(mark(x0)) 7.21/2.77 U131(mark(x0), x1) 7.21/2.77 U132(mark(x0)) 7.21/2.77 U141(mark(x0), x1) 7.21/2.77 U142(mark(x0)) 7.21/2.77 U151(mark(x0), x1) 7.21/2.77 U152(mark(x0)) 7.21/2.77 U161(mark(x0), x1) 7.21/2.77 cons(mark(x0), x1) 7.21/2.77 natsFrom(mark(x0)) 7.21/2.77 s(mark(x0)) 7.21/2.77 U171(mark(x0), x1, x2) 7.21/2.77 U172(mark(x0), x1, x2) 7.21/2.77 head(mark(x0)) 7.21/2.77 afterNth(mark(x0), x1) 7.21/2.77 afterNth(x0, mark(x1)) 7.21/2.77 U181(mark(x0), x1) 7.21/2.77 U182(mark(x0), x1) 7.21/2.77 U191(mark(x0), x1) 7.21/2.77 pair(mark(x0), x1) 7.21/2.77 pair(x0, mark(x1)) 7.21/2.77 U201(mark(x0), x1, x2, x3) 7.21/2.77 U202(mark(x0), x1, x2, x3) 7.21/2.77 U203(mark(x0), x1, x2, x3) 7.21/2.77 U204(mark(x0), x1) 7.21/2.77 U21(mark(x0), x1, x2) 7.21/2.77 U22(mark(x0), x1) 7.21/2.77 U211(mark(x0), x1) 7.21/2.77 U212(mark(x0), x1) 7.21/2.77 U221(mark(x0), x1, x2) 7.21/2.77 U222(mark(x0), x1, x2) 7.21/2.77 fst(mark(x0)) 7.21/2.77 U31(mark(x0), x1, x2) 7.21/2.77 U32(mark(x0), x1) 7.21/2.77 U41(mark(x0), x1) 7.21/2.77 U42(mark(x0)) 7.21/2.77 U51(mark(x0), x1) 7.21/2.77 U52(mark(x0)) 7.21/2.77 U61(mark(x0)) 7.21/2.77 U71(mark(x0)) 7.21/2.77 U81(mark(x0)) 7.21/2.77 U91(mark(x0)) 7.21/2.77 tail(mark(x0)) 7.21/2.77 take(mark(x0), x1) 7.21/2.77 take(x0, mark(x1)) 7.21/2.77 sel(mark(x0), x1) 7.21/2.77 sel(x0, mark(x1)) 7.21/2.77 proper(U101(x0, x1)) 7.21/2.77 proper(tt) 7.21/2.77 proper(U102(x0)) 7.21/2.77 proper(isLNat(x0)) 7.21/2.77 proper(U11(x0, x1, x2)) 7.21/2.77 proper(U12(x0, x1, x2)) 7.21/2.77 proper(U111(x0)) 7.21/2.77 proper(snd(x0)) 7.21/2.77 proper(splitAt(x0, x1)) 7.21/2.77 proper(U121(x0)) 7.21/2.77 proper(U131(x0, x1)) 7.21/2.77 proper(U132(x0)) 7.21/2.77 proper(U141(x0, x1)) 7.21/2.77 proper(U142(x0)) 7.21/2.77 proper(U151(x0, x1)) 7.21/2.77 proper(U152(x0)) 7.21/2.77 proper(U161(x0, x1)) 7.21/2.77 proper(cons(x0, x1)) 7.21/2.77 proper(natsFrom(x0)) 7.21/2.77 proper(s(x0)) 7.21/2.77 proper(U171(x0, x1, x2)) 7.21/2.77 proper(U172(x0, x1, x2)) 7.21/2.77 proper(head(x0)) 7.21/2.77 proper(afterNth(x0, x1)) 7.21/2.77 proper(U181(x0, x1)) 7.21/2.77 proper(U182(x0, x1)) 7.21/2.77 proper(U191(x0, x1)) 7.21/2.77 proper(pair(x0, x1)) 7.21/2.77 proper(nil) 7.21/2.77 proper(U201(x0, x1, x2, x3)) 7.21/2.77 proper(U202(x0, x1, x2, x3)) 7.21/2.77 proper(isNatural(x0)) 7.21/2.77 proper(U203(x0, x1, x2, x3)) 7.21/2.77 proper(U204(x0, x1)) 7.21/2.77 proper(U21(x0, x1, x2)) 7.21/2.77 proper(U22(x0, x1)) 7.21/2.77 proper(U211(x0, x1)) 7.21/2.77 proper(U212(x0, x1)) 7.21/2.77 proper(U221(x0, x1, x2)) 7.21/2.77 proper(U222(x0, x1, x2)) 7.21/2.77 proper(fst(x0)) 7.21/2.77 proper(U31(x0, x1, x2)) 7.21/2.77 proper(U32(x0, x1)) 7.21/2.77 proper(U41(x0, x1)) 7.21/2.77 proper(U42(x0)) 7.21/2.77 proper(U51(x0, x1)) 7.21/2.77 proper(U52(x0)) 7.21/2.77 proper(U61(x0)) 7.21/2.77 proper(U71(x0)) 7.21/2.77 proper(U81(x0)) 7.21/2.77 proper(U91(x0)) 7.21/2.77 proper(isPLNat(x0)) 7.21/2.77 proper(tail(x0)) 7.21/2.77 proper(take(x0, x1)) 7.21/2.77 proper(0) 7.21/2.77 proper(sel(x0, x1)) 7.21/2.77 U101(ok(x0), ok(x1)) 7.21/2.77 U102(ok(x0)) 7.21/2.77 isLNat(ok(x0)) 7.21/2.77 U11(ok(x0), ok(x1), ok(x2)) 7.21/2.77 U12(ok(x0), ok(x1), ok(x2)) 7.21/2.77 U111(ok(x0)) 7.21/2.77 snd(ok(x0)) 7.21/2.77 splitAt(ok(x0), ok(x1)) 7.21/2.77 U121(ok(x0)) 7.21/2.77 U131(ok(x0), ok(x1)) 7.21/2.77 U132(ok(x0)) 7.21/2.77 U141(ok(x0), ok(x1)) 7.21/2.77 U142(ok(x0)) 7.21/2.77 U151(ok(x0), ok(x1)) 7.21/2.77 U152(ok(x0)) 7.21/2.77 U161(ok(x0), ok(x1)) 7.21/2.77 cons(ok(x0), ok(x1)) 7.21/2.77 natsFrom(ok(x0)) 7.21/2.77 s(ok(x0)) 7.21/2.77 U171(ok(x0), ok(x1), ok(x2)) 7.21/2.77 U172(ok(x0), ok(x1), ok(x2)) 7.21/2.77 head(ok(x0)) 7.21/2.77 afterNth(ok(x0), ok(x1)) 7.21/2.77 U181(ok(x0), ok(x1)) 7.21/2.77 U182(ok(x0), ok(x1)) 7.21/2.77 U191(ok(x0), ok(x1)) 7.21/2.77 pair(ok(x0), ok(x1)) 7.21/2.77 U201(ok(x0), ok(x1), ok(x2), ok(x3)) 7.21/2.77 U202(ok(x0), ok(x1), ok(x2), ok(x3)) 7.21/2.77 isNatural(ok(x0)) 7.21/2.77 U203(ok(x0), ok(x1), ok(x2), ok(x3)) 7.21/2.77 U204(ok(x0), ok(x1)) 7.21/2.77 U21(ok(x0), ok(x1), ok(x2)) 7.21/2.77 U22(ok(x0), ok(x1)) 7.21/2.77 U211(ok(x0), ok(x1)) 7.21/2.77 U212(ok(x0), ok(x1)) 7.21/2.77 U221(ok(x0), ok(x1), ok(x2)) 7.21/2.77 U222(ok(x0), ok(x1), ok(x2)) 7.21/2.77 fst(ok(x0)) 7.21/2.77 U31(ok(x0), ok(x1), ok(x2)) 7.21/2.77 U32(ok(x0), ok(x1)) 7.21/2.77 U41(ok(x0), ok(x1)) 7.21/2.77 U42(ok(x0)) 7.21/2.77 U51(ok(x0), ok(x1)) 7.21/2.77 U52(ok(x0)) 7.21/2.77 U61(ok(x0)) 7.21/2.77 U71(ok(x0)) 7.21/2.77 U81(ok(x0)) 7.21/2.77 U91(ok(x0)) 7.21/2.77 isPLNat(ok(x0)) 7.21/2.77 tail(ok(x0)) 7.21/2.77 take(ok(x0), ok(x1)) 7.21/2.77 sel(ok(x0), ok(x1)) 7.21/2.77 top(mark(x0)) 7.21/2.77 top(ok(x0)) 7.21/2.77 7.21/2.77 7.21/2.77 ---------------------------------------- 7.21/2.77 7.21/2.77 (1) QTRSToCSRProof (SOUND) 7.21/2.77 The following Q TRS is given: Q restricted rewrite system: 7.21/2.77 The TRS R consists of the following rules: 7.21/2.77 7.21/2.77 active(U101(tt, V2)) -> mark(U102(isLNat(V2))) 7.21/2.77 active(U102(tt)) -> mark(tt) 7.21/2.77 active(U11(tt, N, XS)) -> mark(U12(isLNat(XS), N, XS)) 7.21/2.77 active(U111(tt)) -> mark(tt) 7.21/2.77 active(U12(tt, N, XS)) -> mark(snd(splitAt(N, XS))) 7.21/2.77 active(U121(tt)) -> mark(tt) 7.21/2.77 active(U131(tt, V2)) -> mark(U132(isLNat(V2))) 7.21/2.77 active(U132(tt)) -> mark(tt) 7.21/2.77 active(U141(tt, V2)) -> mark(U142(isLNat(V2))) 7.21/2.77 active(U142(tt)) -> mark(tt) 7.21/2.77 active(U151(tt, V2)) -> mark(U152(isLNat(V2))) 7.21/2.77 active(U152(tt)) -> mark(tt) 7.21/2.77 active(U161(tt, N)) -> mark(cons(N, natsFrom(s(N)))) 7.21/2.77 active(U171(tt, N, XS)) -> mark(U172(isLNat(XS), N, XS)) 7.21/2.77 active(U172(tt, N, XS)) -> mark(head(afterNth(N, XS))) 7.21/2.77 active(U181(tt, Y)) -> mark(U182(isLNat(Y), Y)) 7.21/2.77 active(U182(tt, Y)) -> mark(Y) 7.21/2.77 active(U191(tt, XS)) -> mark(pair(nil, XS)) 7.21/2.77 active(U201(tt, N, X, XS)) -> mark(U202(isNatural(X), N, X, XS)) 7.21/2.77 active(U202(tt, N, X, XS)) -> mark(U203(isLNat(XS), N, X, XS)) 7.21/2.77 active(U203(tt, N, X, XS)) -> mark(U204(splitAt(N, XS), X)) 7.21/2.77 active(U204(pair(YS, ZS), X)) -> mark(pair(cons(X, YS), ZS)) 7.21/2.77 active(U21(tt, X, Y)) -> mark(U22(isLNat(Y), X)) 7.21/2.77 active(U211(tt, XS)) -> mark(U212(isLNat(XS), XS)) 7.21/2.77 active(U212(tt, XS)) -> mark(XS) 7.21/2.77 active(U22(tt, X)) -> mark(X) 7.21/2.77 active(U221(tt, N, XS)) -> mark(U222(isLNat(XS), N, XS)) 7.21/2.77 active(U222(tt, N, XS)) -> mark(fst(splitAt(N, XS))) 7.21/2.77 active(U31(tt, N, XS)) -> mark(U32(isLNat(XS), N)) 7.21/2.77 active(U32(tt, N)) -> mark(N) 7.21/2.77 active(U41(tt, V2)) -> mark(U42(isLNat(V2))) 7.21/2.77 active(U42(tt)) -> mark(tt) 7.21/2.77 active(U51(tt, V2)) -> mark(U52(isLNat(V2))) 7.21/2.77 active(U52(tt)) -> mark(tt) 7.21/2.77 active(U61(tt)) -> mark(tt) 7.21/2.77 active(U71(tt)) -> mark(tt) 7.21/2.77 active(U81(tt)) -> mark(tt) 7.21/2.77 active(U91(tt)) -> mark(tt) 7.21/2.77 active(afterNth(N, XS)) -> mark(U11(isNatural(N), N, XS)) 7.21/2.77 active(fst(pair(X, Y))) -> mark(U21(isLNat(X), X, Y)) 7.21/2.77 active(head(cons(N, XS))) -> mark(U31(isNatural(N), N, XS)) 7.21/2.77 active(isLNat(nil)) -> mark(tt) 7.21/2.77 active(isLNat(afterNth(V1, V2))) -> mark(U41(isNatural(V1), V2)) 7.21/2.77 active(isLNat(cons(V1, V2))) -> mark(U51(isNatural(V1), V2)) 7.21/2.77 active(isLNat(fst(V1))) -> mark(U61(isPLNat(V1))) 7.21/2.77 active(isLNat(natsFrom(V1))) -> mark(U71(isNatural(V1))) 7.21/2.77 active(isLNat(snd(V1))) -> mark(U81(isPLNat(V1))) 7.21/2.77 active(isLNat(tail(V1))) -> mark(U91(isLNat(V1))) 7.21/2.77 active(isLNat(take(V1, V2))) -> mark(U101(isNatural(V1), V2)) 7.21/2.77 active(isNatural(0)) -> mark(tt) 7.21/2.77 active(isNatural(head(V1))) -> mark(U111(isLNat(V1))) 7.21/2.77 active(isNatural(s(V1))) -> mark(U121(isNatural(V1))) 7.21/2.77 active(isNatural(sel(V1, V2))) -> mark(U131(isNatural(V1), V2)) 7.21/2.77 active(isPLNat(pair(V1, V2))) -> mark(U141(isLNat(V1), V2)) 7.21/2.77 active(isPLNat(splitAt(V1, V2))) -> mark(U151(isNatural(V1), V2)) 7.21/2.77 active(natsFrom(N)) -> mark(U161(isNatural(N), N)) 7.21/2.77 active(sel(N, XS)) -> mark(U171(isNatural(N), N, XS)) 7.21/2.77 active(snd(pair(X, Y))) -> mark(U181(isLNat(X), Y)) 7.21/2.77 active(splitAt(0, XS)) -> mark(U191(isLNat(XS), XS)) 7.21/2.77 active(splitAt(s(N), cons(X, XS))) -> mark(U201(isNatural(N), N, X, XS)) 7.21/2.77 active(tail(cons(N, XS))) -> mark(U211(isNatural(N), XS)) 7.21/2.77 active(take(N, XS)) -> mark(U221(isNatural(N), N, XS)) 7.21/2.77 active(U101(X1, X2)) -> U101(active(X1), X2) 7.21/2.77 active(U102(X)) -> U102(active(X)) 7.21/2.77 active(U11(X1, X2, X3)) -> U11(active(X1), X2, X3) 7.21/2.77 active(U12(X1, X2, X3)) -> U12(active(X1), X2, X3) 7.21/2.77 active(U111(X)) -> U111(active(X)) 7.21/2.77 active(snd(X)) -> snd(active(X)) 7.21/2.77 active(splitAt(X1, X2)) -> splitAt(active(X1), X2) 7.21/2.77 active(splitAt(X1, X2)) -> splitAt(X1, active(X2)) 7.21/2.77 active(U121(X)) -> U121(active(X)) 7.21/2.77 active(U131(X1, X2)) -> U131(active(X1), X2) 7.21/2.77 active(U132(X)) -> U132(active(X)) 7.21/2.77 active(U141(X1, X2)) -> U141(active(X1), X2) 7.21/2.77 active(U142(X)) -> U142(active(X)) 7.21/2.77 active(U151(X1, X2)) -> U151(active(X1), X2) 7.21/2.77 active(U152(X)) -> U152(active(X)) 7.21/2.77 active(U161(X1, X2)) -> U161(active(X1), X2) 7.21/2.77 active(cons(X1, X2)) -> cons(active(X1), X2) 7.21/2.77 active(natsFrom(X)) -> natsFrom(active(X)) 7.21/2.77 active(s(X)) -> s(active(X)) 7.21/2.77 active(U171(X1, X2, X3)) -> U171(active(X1), X2, X3) 7.21/2.77 active(U172(X1, X2, X3)) -> U172(active(X1), X2, X3) 7.21/2.77 active(head(X)) -> head(active(X)) 7.21/2.77 active(afterNth(X1, X2)) -> afterNth(active(X1), X2) 7.21/2.77 active(afterNth(X1, X2)) -> afterNth(X1, active(X2)) 7.21/2.77 active(U181(X1, X2)) -> U181(active(X1), X2) 7.21/2.77 active(U182(X1, X2)) -> U182(active(X1), X2) 7.21/2.77 active(U191(X1, X2)) -> U191(active(X1), X2) 7.21/2.77 active(pair(X1, X2)) -> pair(active(X1), X2) 7.21/2.77 active(pair(X1, X2)) -> pair(X1, active(X2)) 7.21/2.77 active(U201(X1, X2, X3, X4)) -> U201(active(X1), X2, X3, X4) 7.21/2.77 active(U202(X1, X2, X3, X4)) -> U202(active(X1), X2, X3, X4) 7.21/2.77 active(U203(X1, X2, X3, X4)) -> U203(active(X1), X2, X3, X4) 7.21/2.77 active(U204(X1, X2)) -> U204(active(X1), X2) 7.21/2.77 active(U21(X1, X2, X3)) -> U21(active(X1), X2, X3) 7.21/2.77 active(U22(X1, X2)) -> U22(active(X1), X2) 7.21/2.77 active(U211(X1, X2)) -> U211(active(X1), X2) 7.21/2.77 active(U212(X1, X2)) -> U212(active(X1), X2) 7.21/2.77 active(U221(X1, X2, X3)) -> U221(active(X1), X2, X3) 7.21/2.77 active(U222(X1, X2, X3)) -> U222(active(X1), X2, X3) 7.21/2.77 active(fst(X)) -> fst(active(X)) 7.21/2.77 active(U31(X1, X2, X3)) -> U31(active(X1), X2, X3) 7.21/2.77 active(U32(X1, X2)) -> U32(active(X1), X2) 7.21/2.77 active(U41(X1, X2)) -> U41(active(X1), X2) 7.21/2.77 active(U42(X)) -> U42(active(X)) 7.21/2.77 active(U51(X1, X2)) -> U51(active(X1), X2) 7.21/2.77 active(U52(X)) -> U52(active(X)) 7.21/2.77 active(U61(X)) -> U61(active(X)) 7.21/2.77 active(U71(X)) -> U71(active(X)) 7.21/2.77 active(U81(X)) -> U81(active(X)) 7.21/2.77 active(U91(X)) -> U91(active(X)) 7.21/2.77 active(tail(X)) -> tail(active(X)) 7.21/2.77 active(take(X1, X2)) -> take(active(X1), X2) 7.21/2.77 active(take(X1, X2)) -> take(X1, active(X2)) 7.21/2.77 active(sel(X1, X2)) -> sel(active(X1), X2) 7.21/2.77 active(sel(X1, X2)) -> sel(X1, active(X2)) 7.21/2.77 U101(mark(X1), X2) -> mark(U101(X1, X2)) 7.21/2.77 U102(mark(X)) -> mark(U102(X)) 7.21/2.77 U11(mark(X1), X2, X3) -> mark(U11(X1, X2, X3)) 7.21/2.77 U12(mark(X1), X2, X3) -> mark(U12(X1, X2, X3)) 7.21/2.77 U111(mark(X)) -> mark(U111(X)) 7.21/2.77 snd(mark(X)) -> mark(snd(X)) 7.21/2.77 splitAt(mark(X1), X2) -> mark(splitAt(X1, X2)) 7.21/2.77 splitAt(X1, mark(X2)) -> mark(splitAt(X1, X2)) 7.21/2.77 U121(mark(X)) -> mark(U121(X)) 7.21/2.77 U131(mark(X1), X2) -> mark(U131(X1, X2)) 7.21/2.77 U132(mark(X)) -> mark(U132(X)) 7.21/2.77 U141(mark(X1), X2) -> mark(U141(X1, X2)) 7.21/2.77 U142(mark(X)) -> mark(U142(X)) 7.21/2.77 U151(mark(X1), X2) -> mark(U151(X1, X2)) 7.21/2.77 U152(mark(X)) -> mark(U152(X)) 7.21/2.77 U161(mark(X1), X2) -> mark(U161(X1, X2)) 7.21/2.77 cons(mark(X1), X2) -> mark(cons(X1, X2)) 7.21/2.77 natsFrom(mark(X)) -> mark(natsFrom(X)) 7.21/2.77 s(mark(X)) -> mark(s(X)) 7.21/2.77 U171(mark(X1), X2, X3) -> mark(U171(X1, X2, X3)) 7.21/2.77 U172(mark(X1), X2, X3) -> mark(U172(X1, X2, X3)) 7.21/2.77 head(mark(X)) -> mark(head(X)) 7.21/2.77 afterNth(mark(X1), X2) -> mark(afterNth(X1, X2)) 7.21/2.77 afterNth(X1, mark(X2)) -> mark(afterNth(X1, X2)) 7.21/2.77 U181(mark(X1), X2) -> mark(U181(X1, X2)) 7.21/2.77 U182(mark(X1), X2) -> mark(U182(X1, X2)) 7.21/2.77 U191(mark(X1), X2) -> mark(U191(X1, X2)) 7.21/2.77 pair(mark(X1), X2) -> mark(pair(X1, X2)) 7.21/2.77 pair(X1, mark(X2)) -> mark(pair(X1, X2)) 7.21/2.77 U201(mark(X1), X2, X3, X4) -> mark(U201(X1, X2, X3, X4)) 7.21/2.77 U202(mark(X1), X2, X3, X4) -> mark(U202(X1, X2, X3, X4)) 7.21/2.77 U203(mark(X1), X2, X3, X4) -> mark(U203(X1, X2, X3, X4)) 7.21/2.77 U204(mark(X1), X2) -> mark(U204(X1, X2)) 7.21/2.77 U21(mark(X1), X2, X3) -> mark(U21(X1, X2, X3)) 7.21/2.77 U22(mark(X1), X2) -> mark(U22(X1, X2)) 7.21/2.77 U211(mark(X1), X2) -> mark(U211(X1, X2)) 7.21/2.77 U212(mark(X1), X2) -> mark(U212(X1, X2)) 7.21/2.77 U221(mark(X1), X2, X3) -> mark(U221(X1, X2, X3)) 7.21/2.77 U222(mark(X1), X2, X3) -> mark(U222(X1, X2, X3)) 7.21/2.77 fst(mark(X)) -> mark(fst(X)) 7.21/2.77 U31(mark(X1), X2, X3) -> mark(U31(X1, X2, X3)) 7.21/2.77 U32(mark(X1), X2) -> mark(U32(X1, X2)) 7.21/2.77 U41(mark(X1), X2) -> mark(U41(X1, X2)) 7.21/2.77 U42(mark(X)) -> mark(U42(X)) 7.21/2.77 U51(mark(X1), X2) -> mark(U51(X1, X2)) 7.21/2.77 U52(mark(X)) -> mark(U52(X)) 7.21/2.77 U61(mark(X)) -> mark(U61(X)) 7.21/2.77 U71(mark(X)) -> mark(U71(X)) 7.21/2.77 U81(mark(X)) -> mark(U81(X)) 7.21/2.77 U91(mark(X)) -> mark(U91(X)) 7.21/2.77 tail(mark(X)) -> mark(tail(X)) 7.21/2.77 take(mark(X1), X2) -> mark(take(X1, X2)) 7.21/2.77 take(X1, mark(X2)) -> mark(take(X1, X2)) 7.21/2.77 sel(mark(X1), X2) -> mark(sel(X1, X2)) 7.21/2.77 sel(X1, mark(X2)) -> mark(sel(X1, X2)) 7.21/2.77 proper(U101(X1, X2)) -> U101(proper(X1), proper(X2)) 7.21/2.77 proper(tt) -> ok(tt) 7.21/2.77 proper(U102(X)) -> U102(proper(X)) 7.21/2.77 proper(isLNat(X)) -> isLNat(proper(X)) 7.21/2.77 proper(U11(X1, X2, X3)) -> U11(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(U12(X1, X2, X3)) -> U12(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(U111(X)) -> U111(proper(X)) 7.21/2.77 proper(snd(X)) -> snd(proper(X)) 7.21/2.77 proper(splitAt(X1, X2)) -> splitAt(proper(X1), proper(X2)) 7.21/2.77 proper(U121(X)) -> U121(proper(X)) 7.21/2.77 proper(U131(X1, X2)) -> U131(proper(X1), proper(X2)) 7.21/2.77 proper(U132(X)) -> U132(proper(X)) 7.21/2.77 proper(U141(X1, X2)) -> U141(proper(X1), proper(X2)) 7.21/2.77 proper(U142(X)) -> U142(proper(X)) 7.21/2.77 proper(U151(X1, X2)) -> U151(proper(X1), proper(X2)) 7.21/2.77 proper(U152(X)) -> U152(proper(X)) 7.21/2.77 proper(U161(X1, X2)) -> U161(proper(X1), proper(X2)) 7.21/2.77 proper(cons(X1, X2)) -> cons(proper(X1), proper(X2)) 7.21/2.77 proper(natsFrom(X)) -> natsFrom(proper(X)) 7.21/2.77 proper(s(X)) -> s(proper(X)) 7.21/2.77 proper(U171(X1, X2, X3)) -> U171(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(U172(X1, X2, X3)) -> U172(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(head(X)) -> head(proper(X)) 7.21/2.77 proper(afterNth(X1, X2)) -> afterNth(proper(X1), proper(X2)) 7.21/2.77 proper(U181(X1, X2)) -> U181(proper(X1), proper(X2)) 7.21/2.77 proper(U182(X1, X2)) -> U182(proper(X1), proper(X2)) 7.21/2.77 proper(U191(X1, X2)) -> U191(proper(X1), proper(X2)) 7.21/2.77 proper(pair(X1, X2)) -> pair(proper(X1), proper(X2)) 7.21/2.77 proper(nil) -> ok(nil) 7.21/2.77 proper(U201(X1, X2, X3, X4)) -> U201(proper(X1), proper(X2), proper(X3), proper(X4)) 7.21/2.77 proper(U202(X1, X2, X3, X4)) -> U202(proper(X1), proper(X2), proper(X3), proper(X4)) 7.21/2.77 proper(isNatural(X)) -> isNatural(proper(X)) 7.21/2.77 proper(U203(X1, X2, X3, X4)) -> U203(proper(X1), proper(X2), proper(X3), proper(X4)) 7.21/2.77 proper(U204(X1, X2)) -> U204(proper(X1), proper(X2)) 7.21/2.77 proper(U21(X1, X2, X3)) -> U21(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(U22(X1, X2)) -> U22(proper(X1), proper(X2)) 7.21/2.77 proper(U211(X1, X2)) -> U211(proper(X1), proper(X2)) 7.21/2.77 proper(U212(X1, X2)) -> U212(proper(X1), proper(X2)) 7.21/2.77 proper(U221(X1, X2, X3)) -> U221(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(U222(X1, X2, X3)) -> U222(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(fst(X)) -> fst(proper(X)) 7.21/2.77 proper(U31(X1, X2, X3)) -> U31(proper(X1), proper(X2), proper(X3)) 7.21/2.77 proper(U32(X1, X2)) -> U32(proper(X1), proper(X2)) 7.21/2.77 proper(U41(X1, X2)) -> U41(proper(X1), proper(X2)) 7.21/2.77 proper(U42(X)) -> U42(proper(X)) 7.21/2.77 proper(U51(X1, X2)) -> U51(proper(X1), proper(X2)) 7.21/2.77 proper(U52(X)) -> U52(proper(X)) 7.21/2.77 proper(U61(X)) -> U61(proper(X)) 7.21/2.77 proper(U71(X)) -> U71(proper(X)) 7.21/2.77 proper(U81(X)) -> U81(proper(X)) 7.21/2.77 proper(U91(X)) -> U91(proper(X)) 7.21/2.77 proper(isPLNat(X)) -> isPLNat(proper(X)) 7.21/2.77 proper(tail(X)) -> tail(proper(X)) 7.21/2.77 proper(take(X1, X2)) -> take(proper(X1), proper(X2)) 7.21/2.77 proper(0) -> ok(0) 7.21/2.77 proper(sel(X1, X2)) -> sel(proper(X1), proper(X2)) 7.21/2.77 U101(ok(X1), ok(X2)) -> ok(U101(X1, X2)) 7.21/2.77 U102(ok(X)) -> ok(U102(X)) 7.21/2.77 isLNat(ok(X)) -> ok(isLNat(X)) 7.21/2.77 U11(ok(X1), ok(X2), ok(X3)) -> ok(U11(X1, X2, X3)) 7.21/2.77 U12(ok(X1), ok(X2), ok(X3)) -> ok(U12(X1, X2, X3)) 7.21/2.77 U111(ok(X)) -> ok(U111(X)) 7.21/2.77 snd(ok(X)) -> ok(snd(X)) 7.21/2.77 splitAt(ok(X1), ok(X2)) -> ok(splitAt(X1, X2)) 7.21/2.77 U121(ok(X)) -> ok(U121(X)) 7.21/2.77 U131(ok(X1), ok(X2)) -> ok(U131(X1, X2)) 7.21/2.77 U132(ok(X)) -> ok(U132(X)) 7.21/2.77 U141(ok(X1), ok(X2)) -> ok(U141(X1, X2)) 7.21/2.77 U142(ok(X)) -> ok(U142(X)) 7.21/2.77 U151(ok(X1), ok(X2)) -> ok(U151(X1, X2)) 7.21/2.77 U152(ok(X)) -> ok(U152(X)) 7.21/2.77 U161(ok(X1), ok(X2)) -> ok(U161(X1, X2)) 7.21/2.77 cons(ok(X1), ok(X2)) -> ok(cons(X1, X2)) 7.21/2.77 natsFrom(ok(X)) -> ok(natsFrom(X)) 7.21/2.77 s(ok(X)) -> ok(s(X)) 7.21/2.77 U171(ok(X1), ok(X2), ok(X3)) -> ok(U171(X1, X2, X3)) 7.21/2.77 U172(ok(X1), ok(X2), ok(X3)) -> ok(U172(X1, X2, X3)) 7.21/2.77 head(ok(X)) -> ok(head(X)) 7.21/2.77 afterNth(ok(X1), ok(X2)) -> ok(afterNth(X1, X2)) 7.21/2.77 U181(ok(X1), ok(X2)) -> ok(U181(X1, X2)) 7.21/2.77 U182(ok(X1), ok(X2)) -> ok(U182(X1, X2)) 7.21/2.77 U191(ok(X1), ok(X2)) -> ok(U191(X1, X2)) 7.21/2.77 pair(ok(X1), ok(X2)) -> ok(pair(X1, X2)) 7.21/2.77 U201(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U201(X1, X2, X3, X4)) 7.21/2.77 U202(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U202(X1, X2, X3, X4)) 7.21/2.77 isNatural(ok(X)) -> ok(isNatural(X)) 7.21/2.77 U203(ok(X1), ok(X2), ok(X3), ok(X4)) -> ok(U203(X1, X2, X3, X4)) 7.21/2.77 U204(ok(X1), ok(X2)) -> ok(U204(X1, X2)) 7.21/2.77 U21(ok(X1), ok(X2), ok(X3)) -> ok(U21(X1, X2, X3)) 7.21/2.77 U22(ok(X1), ok(X2)) -> ok(U22(X1, X2)) 7.21/2.77 U211(ok(X1), ok(X2)) -> ok(U211(X1, X2)) 7.21/2.77 U212(ok(X1), ok(X2)) -> ok(U212(X1, X2)) 7.21/2.77 U221(ok(X1), ok(X2), ok(X3)) -> ok(U221(X1, X2, X3)) 7.21/2.77 U222(ok(X1), ok(X2), ok(X3)) -> ok(U222(X1, X2, X3)) 7.21/2.77 fst(ok(X)) -> ok(fst(X)) 7.21/2.77 U31(ok(X1), ok(X2), ok(X3)) -> ok(U31(X1, X2, X3)) 7.21/2.77 U32(ok(X1), ok(X2)) -> ok(U32(X1, X2)) 7.21/2.77 U41(ok(X1), ok(X2)) -> ok(U41(X1, X2)) 7.21/2.77 U42(ok(X)) -> ok(U42(X)) 7.21/2.77 U51(ok(X1), ok(X2)) -> ok(U51(X1, X2)) 7.21/2.77 U52(ok(X)) -> ok(U52(X)) 7.21/2.77 U61(ok(X)) -> ok(U61(X)) 7.21/2.77 U71(ok(X)) -> ok(U71(X)) 7.21/2.77 U81(ok(X)) -> ok(U81(X)) 7.21/2.77 U91(ok(X)) -> ok(U91(X)) 7.21/2.77 isPLNat(ok(X)) -> ok(isPLNat(X)) 7.21/2.77 tail(ok(X)) -> ok(tail(X)) 7.21/2.77 take(ok(X1), ok(X2)) -> ok(take(X1, X2)) 7.21/2.77 sel(ok(X1), ok(X2)) -> ok(sel(X1, X2)) 7.21/2.77 top(mark(X)) -> top(proper(X)) 7.21/2.77 top(ok(X)) -> top(active(X)) 7.21/2.77 7.21/2.77 The set Q consists of the following terms: 7.21/2.77 7.21/2.77 active(afterNth(x0, x1)) 7.21/2.77 active(isLNat(nil)) 7.21/2.77 active(isLNat(afterNth(x0, x1))) 7.21/2.77 active(isLNat(cons(x0, x1))) 7.21/2.77 active(isLNat(fst(x0))) 7.21/2.77 active(isLNat(natsFrom(x0))) 7.21/2.77 active(isLNat(snd(x0))) 7.21/2.77 active(isLNat(tail(x0))) 7.21/2.77 active(isLNat(take(x0, x1))) 7.21/2.77 active(isNatural(0)) 7.21/2.77 active(isNatural(head(x0))) 7.21/2.77 active(isNatural(s(x0))) 7.21/2.77 active(isNatural(sel(x0, x1))) 7.21/2.77 active(isPLNat(pair(x0, x1))) 7.21/2.77 active(isPLNat(splitAt(x0, x1))) 7.21/2.77 active(natsFrom(x0)) 7.21/2.77 active(sel(x0, x1)) 7.21/2.77 active(take(x0, x1)) 7.21/2.77 active(U101(x0, x1)) 7.21/2.77 active(U102(x0)) 7.21/2.77 active(U11(x0, x1, x2)) 7.21/2.77 active(U12(x0, x1, x2)) 7.21/2.77 active(U111(x0)) 7.21/2.77 active(snd(x0)) 7.21/2.77 active(splitAt(x0, x1)) 7.21/2.77 active(U121(x0)) 7.21/2.77 active(U131(x0, x1)) 7.21/2.77 active(U132(x0)) 7.21/2.77 active(U141(x0, x1)) 7.21/2.77 active(U142(x0)) 7.21/2.77 active(U151(x0, x1)) 7.21/2.77 active(U152(x0)) 7.21/2.77 active(U161(x0, x1)) 7.21/2.77 active(cons(x0, x1)) 7.21/2.77 active(s(x0)) 7.21/2.77 active(U171(x0, x1, x2)) 7.21/2.77 active(U172(x0, x1, x2)) 7.21/2.77 active(head(x0)) 7.21/2.77 active(U181(x0, x1)) 7.21/2.77 active(U182(x0, x1)) 7.21/2.77 active(U191(x0, x1)) 7.21/2.77 active(pair(x0, x1)) 7.21/2.77 active(U201(x0, x1, x2, x3)) 7.21/2.77 active(U202(x0, x1, x2, x3)) 7.21/2.77 active(U203(x0, x1, x2, x3)) 7.21/2.77 active(U204(x0, x1)) 7.21/2.77 active(U21(x0, x1, x2)) 7.21/2.77 active(U22(x0, x1)) 7.21/2.77 active(U211(x0, x1)) 7.21/2.77 active(U212(x0, x1)) 7.21/2.77 active(U221(x0, x1, x2)) 7.21/2.77 active(U222(x0, x1, x2)) 7.21/2.77 active(fst(x0)) 7.21/2.77 active(U31(x0, x1, x2)) 7.21/2.77 active(U32(x0, x1)) 7.21/2.77 active(U41(x0, x1)) 7.21/2.77 active(U42(x0)) 7.21/2.77 active(U51(x0, x1)) 7.21/2.77 active(U52(x0)) 7.21/2.77 active(U61(x0)) 7.21/2.77 active(U71(x0)) 7.21/2.77 active(U81(x0)) 7.21/2.77 active(U91(x0)) 7.21/2.77 active(tail(x0)) 7.21/2.77 U101(mark(x0), x1) 7.21/2.77 U102(mark(x0)) 7.21/2.77 U11(mark(x0), x1, x2) 7.21/2.77 U12(mark(x0), x1, x2) 7.21/2.77 U111(mark(x0)) 7.21/2.77 snd(mark(x0)) 7.21/2.77 splitAt(mark(x0), x1) 7.21/2.77 splitAt(x0, mark(x1)) 7.21/2.77 U121(mark(x0)) 7.21/2.77 U131(mark(x0), x1) 7.21/2.77 U132(mark(x0)) 7.21/2.77 U141(mark(x0), x1) 7.21/2.77 U142(mark(x0)) 7.21/2.77 U151(mark(x0), x1) 7.21/2.77 U152(mark(x0)) 7.21/2.77 U161(mark(x0), x1) 7.21/2.77 cons(mark(x0), x1) 7.21/2.77 natsFrom(mark(x0)) 7.21/2.77 s(mark(x0)) 7.21/2.77 U171(mark(x0), x1, x2) 7.21/2.77 U172(mark(x0), x1, x2) 7.21/2.77 head(mark(x0)) 7.21/2.77 afterNth(mark(x0), x1) 7.21/2.77 afterNth(x0, mark(x1)) 7.21/2.77 U181(mark(x0), x1) 7.21/2.77 U182(mark(x0), x1) 7.21/2.77 U191(mark(x0), x1) 7.21/2.77 pair(mark(x0), x1) 7.21/2.77 pair(x0, mark(x1)) 7.21/2.77 U201(mark(x0), x1, x2, x3) 7.21/2.77 U202(mark(x0), x1, x2, x3) 7.21/2.77 U203(mark(x0), x1, x2, x3) 7.21/2.77 U204(mark(x0), x1) 7.21/2.77 U21(mark(x0), x1, x2) 7.21/2.77 U22(mark(x0), x1) 7.21/2.77 U211(mark(x0), x1) 7.21/2.77 U212(mark(x0), x1) 7.21/2.77 U221(mark(x0), x1, x2) 7.21/2.77 U222(mark(x0), x1, x2) 7.21/2.77 fst(mark(x0)) 7.21/2.77 U31(mark(x0), x1, x2) 7.21/2.77 U32(mark(x0), x1) 7.21/2.77 U41(mark(x0), x1) 7.21/2.77 U42(mark(x0)) 7.21/2.77 U51(mark(x0), x1) 7.21/2.77 U52(mark(x0)) 7.21/2.77 U61(mark(x0)) 7.21/2.77 U71(mark(x0)) 7.21/2.77 U81(mark(x0)) 7.21/2.77 U91(mark(x0)) 7.21/2.77 tail(mark(x0)) 7.21/2.77 take(mark(x0), x1) 7.21/2.77 take(x0, mark(x1)) 7.21/2.77 sel(mark(x0), x1) 7.21/2.77 sel(x0, mark(x1)) 7.21/2.77 proper(U101(x0, x1)) 7.21/2.77 proper(tt) 7.21/2.77 proper(U102(x0)) 7.21/2.77 proper(isLNat(x0)) 7.21/2.77 proper(U11(x0, x1, x2)) 7.21/2.77 proper(U12(x0, x1, x2)) 7.21/2.77 proper(U111(x0)) 7.21/2.77 proper(snd(x0)) 7.21/2.77 proper(splitAt(x0, x1)) 7.21/2.77 proper(U121(x0)) 7.21/2.77 proper(U131(x0, x1)) 7.21/2.77 proper(U132(x0)) 7.21/2.77 proper(U141(x0, x1)) 7.21/2.77 proper(U142(x0)) 7.21/2.77 proper(U151(x0, x1)) 7.21/2.77 proper(U152(x0)) 7.21/2.77 proper(U161(x0, x1)) 7.21/2.77 proper(cons(x0, x1)) 7.21/2.77 proper(natsFrom(x0)) 7.21/2.77 proper(s(x0)) 7.21/2.77 proper(U171(x0, x1, x2)) 7.21/2.77 proper(U172(x0, x1, x2)) 7.21/2.77 proper(head(x0)) 7.21/2.77 proper(afterNth(x0, x1)) 7.21/2.77 proper(U181(x0, x1)) 7.21/2.77 proper(U182(x0, x1)) 7.21/2.77 proper(U191(x0, x1)) 7.21/2.77 proper(pair(x0, x1)) 7.21/2.77 proper(nil) 7.21/2.77 proper(U201(x0, x1, x2, x3)) 7.21/2.77 proper(U202(x0, x1, x2, x3)) 7.21/2.77 proper(isNatural(x0)) 7.21/2.77 proper(U203(x0, x1, x2, x3)) 7.21/2.77 proper(U204(x0, x1)) 7.21/2.77 proper(U21(x0, x1, x2)) 7.21/2.77 proper(U22(x0, x1)) 7.21/2.77 proper(U211(x0, x1)) 7.21/2.77 proper(U212(x0, x1)) 7.21/2.77 proper(U221(x0, x1, x2)) 7.21/2.77 proper(U222(x0, x1, x2)) 7.21/2.77 proper(fst(x0)) 7.21/2.77 proper(U31(x0, x1, x2)) 7.21/2.77 proper(U32(x0, x1)) 7.21/2.77 proper(U41(x0, x1)) 7.21/2.77 proper(U42(x0)) 7.21/2.77 proper(U51(x0, x1)) 7.21/2.77 proper(U52(x0)) 7.21/2.77 proper(U61(x0)) 7.21/2.77 proper(U71(x0)) 7.21/2.77 proper(U81(x0)) 7.21/2.77 proper(U91(x0)) 7.21/2.77 proper(isPLNat(x0)) 7.21/2.77 proper(tail(x0)) 7.21/2.77 proper(take(x0, x1)) 7.21/2.77 proper(0) 7.21/2.77 proper(sel(x0, x1)) 7.21/2.77 U101(ok(x0), ok(x1)) 7.21/2.77 U102(ok(x0)) 7.21/2.77 isLNat(ok(x0)) 7.21/2.77 U11(ok(x0), ok(x1), ok(x2)) 7.21/2.77 U12(ok(x0), ok(x1), ok(x2)) 7.21/2.77 U111(ok(x0)) 7.21/2.77 snd(ok(x0)) 7.21/2.77 splitAt(ok(x0), ok(x1)) 7.21/2.77 U121(ok(x0)) 7.21/2.77 U131(ok(x0), ok(x1)) 7.21/2.77 U132(ok(x0)) 7.21/2.77 U141(ok(x0), ok(x1)) 7.21/2.77 U142(ok(x0)) 7.21/2.77 U151(ok(x0), ok(x1)) 7.21/2.77 U152(ok(x0)) 7.21/2.77 U161(ok(x0), ok(x1)) 7.21/2.77 cons(ok(x0), ok(x1)) 7.21/2.77 natsFrom(ok(x0)) 7.21/2.77 s(ok(x0)) 7.21/2.77 U171(ok(x0), ok(x1), ok(x2)) 7.21/2.77 U172(ok(x0), ok(x1), ok(x2)) 7.21/2.77 head(ok(x0)) 7.21/2.77 afterNth(ok(x0), ok(x1)) 7.21/2.77 U181(ok(x0), ok(x1)) 7.21/2.77 U182(ok(x0), ok(x1)) 7.21/2.77 U191(ok(x0), ok(x1)) 7.21/2.77 pair(ok(x0), ok(x1)) 7.21/2.77 U201(ok(x0), ok(x1), ok(x2), ok(x3)) 7.21/2.77 U202(ok(x0), ok(x1), ok(x2), ok(x3)) 7.21/2.77 isNatural(ok(x0)) 7.21/2.77 U203(ok(x0), ok(x1), ok(x2), ok(x3)) 7.21/2.77 U204(ok(x0), ok(x1)) 7.21/2.77 U21(ok(x0), ok(x1), ok(x2)) 7.21/2.77 U22(ok(x0), ok(x1)) 7.21/2.77 U211(ok(x0), ok(x1)) 7.21/2.77 U212(ok(x0), ok(x1)) 7.21/2.77 U221(ok(x0), ok(x1), ok(x2)) 7.21/2.77 U222(ok(x0), ok(x1), ok(x2)) 7.21/2.77 fst(ok(x0)) 7.21/2.77 U31(ok(x0), ok(x1), ok(x2)) 7.21/2.77 U32(ok(x0), ok(x1)) 7.21/2.77 U41(ok(x0), ok(x1)) 7.21/2.77 U42(ok(x0)) 7.21/2.77 U51(ok(x0), ok(x1)) 7.21/2.77 U52(ok(x0)) 7.21/2.77 U61(ok(x0)) 7.21/2.77 U71(ok(x0)) 7.21/2.77 U81(ok(x0)) 7.21/2.77 U91(ok(x0)) 7.21/2.77 isPLNat(ok(x0)) 7.21/2.77 tail(ok(x0)) 7.21/2.77 take(ok(x0), ok(x1)) 7.21/2.77 sel(ok(x0), ok(x1)) 7.21/2.77 top(mark(x0)) 7.21/2.77 top(ok(x0)) 7.21/2.77 7.21/2.77 Special symbols used for the transformation (see [GM04]): 7.21/2.77 top: top_1, active: active_1, mark: mark_1, ok: ok_1, proper: proper_1 7.21/2.77 The replacement map contains the following entries: 7.21/2.77 7.21/2.77 U101: {1} 7.21/2.77 tt: empty set 7.21/2.77 U102: {1} 7.21/2.77 isLNat: empty set 7.21/2.77 U11: {1} 7.21/2.77 U12: {1} 7.21/2.77 U111: {1} 7.21/2.77 snd: {1} 7.21/2.77 splitAt: {1, 2} 7.21/2.77 U121: {1} 7.21/2.77 U131: {1} 7.21/2.77 U132: {1} 7.21/2.77 U141: {1} 7.21/2.77 U142: {1} 7.21/2.77 U151: {1} 7.21/2.77 U152: {1} 7.21/2.77 U161: {1} 7.21/2.77 cons: {1} 7.21/2.77 natsFrom: {1} 7.21/2.77 s: {1} 7.21/2.77 U171: {1} 7.21/2.77 U172: {1} 7.21/2.77 head: {1} 7.21/2.77 afterNth: {1, 2} 7.21/2.77 U181: {1} 7.21/2.77 U182: {1} 7.21/2.77 U191: {1} 7.21/2.77 pair: {1, 2} 7.21/2.77 nil: empty set 7.21/2.77 U201: {1} 7.21/2.77 U202: {1} 7.21/2.77 isNatural: empty set 7.21/2.77 U203: {1} 7.21/2.77 U204: {1} 7.21/2.77 U21: {1} 7.21/2.77 U22: {1} 7.21/2.77 U211: {1} 7.21/2.77 U212: {1} 7.21/2.77 U221: {1} 7.21/2.77 U222: {1} 7.21/2.77 fst: {1} 7.21/2.77 U31: {1} 7.21/2.77 U32: {1} 7.21/2.77 U41: {1} 7.21/2.77 U42: {1} 7.21/2.77 U51: {1} 7.21/2.77 U52: {1} 7.21/2.77 U61: {1} 7.21/2.77 U71: {1} 7.21/2.77 U81: {1} 7.21/2.77 U91: {1} 7.21/2.77 isPLNat: empty set 7.21/2.77 tail: {1} 7.21/2.77 take: {1, 2} 7.21/2.77 0: empty set 7.21/2.77 sel: {1, 2} 7.21/2.77 The QTRS contained just a subset of rules created by the complete Giesl-Middeldorp transformation. Therefore, the inverse transformation is sound, but not necessarily complete. 7.21/2.77 ---------------------------------------- 7.21/2.77 7.21/2.77 (2) 7.21/2.77 Obligation: 7.21/2.77 Context-sensitive rewrite system: 7.21/2.77 The TRS R consists of the following rules: 7.21/2.77 7.21/2.77 U101(tt, V2) -> U102(isLNat(V2)) 7.21/2.77 U102(tt) -> tt 7.21/2.77 U11(tt, N, XS) -> U12(isLNat(XS), N, XS) 7.21/2.78 U111(tt) -> tt 7.21/2.78 U12(tt, N, XS) -> snd(splitAt(N, XS)) 7.21/2.78 U121(tt) -> tt 7.21/2.78 U131(tt, V2) -> U132(isLNat(V2)) 7.21/2.78 U132(tt) -> tt 7.21/2.78 U141(tt, V2) -> U142(isLNat(V2)) 7.21/2.78 U142(tt) -> tt 7.21/2.78 U151(tt, V2) -> U152(isLNat(V2)) 7.21/2.78 U152(tt) -> tt 7.21/2.78 U161(tt, N) -> cons(N, natsFrom(s(N))) 7.21/2.78 U171(tt, N, XS) -> U172(isLNat(XS), N, XS) 7.21/2.78 U172(tt, N, XS) -> head(afterNth(N, XS)) 7.21/2.78 U181(tt, Y) -> U182(isLNat(Y), Y) 7.21/2.78 U182(tt, Y) -> Y 7.21/2.78 U191(tt, XS) -> pair(nil, XS) 7.21/2.78 U201(tt, N, X, XS) -> U202(isNatural(X), N, X, XS) 7.21/2.78 U202(tt, N, X, XS) -> U203(isLNat(XS), N, X, XS) 7.21/2.78 U203(tt, N, X, XS) -> U204(splitAt(N, XS), X) 7.21/2.78 U204(pair(YS, ZS), X) -> pair(cons(X, YS), ZS) 7.21/2.78 U21(tt, X, Y) -> U22(isLNat(Y), X) 7.21/2.78 U211(tt, XS) -> U212(isLNat(XS), XS) 7.21/2.78 U212(tt, XS) -> XS 7.21/2.78 U22(tt, X) -> X 7.21/2.78 U221(tt, N, XS) -> U222(isLNat(XS), N, XS) 7.21/2.78 U222(tt, N, XS) -> fst(splitAt(N, XS)) 7.21/2.78 U31(tt, N, XS) -> U32(isLNat(XS), N) 7.21/2.78 U32(tt, N) -> N 7.21/2.78 U41(tt, V2) -> U42(isLNat(V2)) 7.21/2.78 U42(tt) -> tt 7.21/2.78 U51(tt, V2) -> U52(isLNat(V2)) 7.21/2.78 U52(tt) -> tt 7.21/2.78 U61(tt) -> tt 7.21/2.78 U71(tt) -> tt 7.21/2.78 U81(tt) -> tt 7.21/2.78 U91(tt) -> tt 7.21/2.78 afterNth(N, XS) -> U11(isNatural(N), N, XS) 7.21/2.78 fst(pair(X, Y)) -> U21(isLNat(X), X, Y) 7.21/2.78 head(cons(N, XS)) -> U31(isNatural(N), N, XS) 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isLNat(cons(V1, V2)) -> U51(isNatural(V1), V2) 7.21/2.78 isLNat(fst(V1)) -> U61(isPLNat(V1)) 7.21/2.78 isLNat(natsFrom(V1)) -> U71(isNatural(V1)) 7.21/2.78 isLNat(snd(V1)) -> U81(isPLNat(V1)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 isLNat(take(V1, V2)) -> U101(isNatural(V1), V2) 7.21/2.78 isNatural(0) -> tt 7.21/2.78 isNatural(head(V1)) -> U111(isLNat(V1)) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isNatural(sel(V1, V2)) -> U131(isNatural(V1), V2) 7.21/2.78 isPLNat(pair(V1, V2)) -> U141(isLNat(V1), V2) 7.21/2.78 isPLNat(splitAt(V1, V2)) -> U151(isNatural(V1), V2) 7.21/2.78 natsFrom(N) -> U161(isNatural(N), N) 7.21/2.78 sel(N, XS) -> U171(isNatural(N), N, XS) 7.21/2.78 snd(pair(X, Y)) -> U181(isLNat(X), Y) 7.21/2.78 splitAt(0, XS) -> U191(isLNat(XS), XS) 7.21/2.78 splitAt(s(N), cons(X, XS)) -> U201(isNatural(N), N, X, XS) 7.21/2.78 tail(cons(N, XS)) -> U211(isNatural(N), XS) 7.21/2.78 take(N, XS) -> U221(isNatural(N), N, XS) 7.21/2.78 7.21/2.78 The replacement map contains the following entries: 7.21/2.78 7.21/2.78 U101: {1} 7.21/2.78 tt: empty set 7.21/2.78 U102: {1} 7.21/2.78 isLNat: empty set 7.21/2.78 U11: {1} 7.21/2.78 U12: {1} 7.21/2.78 U111: {1} 7.21/2.78 snd: {1} 7.21/2.78 splitAt: {1, 2} 7.21/2.78 U121: {1} 7.21/2.78 U131: {1} 7.21/2.78 U132: {1} 7.21/2.78 U141: {1} 7.21/2.78 U142: {1} 7.21/2.78 U151: {1} 7.21/2.78 U152: {1} 7.21/2.78 U161: {1} 7.21/2.78 cons: {1} 7.21/2.78 natsFrom: {1} 7.21/2.78 s: {1} 7.21/2.78 U171: {1} 7.21/2.78 U172: {1} 7.21/2.78 head: {1} 7.21/2.78 afterNth: {1, 2} 7.21/2.78 U181: {1} 7.21/2.78 U182: {1} 7.21/2.78 U191: {1} 7.21/2.78 pair: {1, 2} 7.21/2.78 nil: empty set 7.21/2.78 U201: {1} 7.21/2.78 U202: {1} 7.21/2.78 isNatural: empty set 7.21/2.78 U203: {1} 7.21/2.78 U204: {1} 7.21/2.78 U21: {1} 7.21/2.78 U22: {1} 7.21/2.78 U211: {1} 7.21/2.78 U212: {1} 7.21/2.78 U221: {1} 7.21/2.78 U222: {1} 7.21/2.78 fst: {1} 7.21/2.78 U31: {1} 7.21/2.78 U32: {1} 7.21/2.78 U41: {1} 7.21/2.78 U42: {1} 7.21/2.78 U51: {1} 7.21/2.78 U52: {1} 7.21/2.78 U61: {1} 7.21/2.78 U71: {1} 7.21/2.78 U81: {1} 7.21/2.78 U91: {1} 7.21/2.78 isPLNat: empty set 7.21/2.78 tail: {1} 7.21/2.78 take: {1, 2} 7.21/2.78 0: empty set 7.21/2.78 sel: {1, 2} 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (3) CSDependencyPairsProof (EQUIVALENT) 7.21/2.78 Using Improved CS-DPs [LPAR08] we result in the following initial Q-CSDP problem. 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (4) 7.21/2.78 Obligation: 7.21/2.78 Q-restricted context-sensitive dependency pair problem: 7.21/2.78 The symbols in {U102_1, U111_1, snd_1, splitAt_2, U121_1, U132_1, U142_1, U152_1, natsFrom_1, s_1, head_1, afterNth_2, pair_2, fst_1, U42_1, U52_1, U61_1, U71_1, U81_1, U91_1, tail_1, take_2, sel_2, U102'_1, SND_1, SPLITAT_2, U132'_1, U142'_1, U152'_1, HEAD_1, AFTERNTH_2, FST_1, U42'_1, U52'_1, U61'_1, U71'_1, U81'_1, U91'_1, U111'_1, U121'_1, NATSFROM_1, SEL_2, TAIL_1, TAKE_2} are replacing on all positions. 7.21/2.78 For all symbols f in {U101_2, U11_3, U12_3, U131_2, U141_2, U151_2, U161_2, cons_2, U171_3, U172_3, U181_2, U182_2, U191_2, U201_4, U202_4, U203_4, U204_2, U21_3, U22_2, U211_2, U212_2, U221_3, U222_3, U31_3, U32_2, U41_2, U51_2, U101'_2, U12'_3, U11'_3, U131'_2, U141'_2, U151'_2, U172'_3, U171'_3, U182'_2, U181'_2, U202'_4, U201'_4, U203'_4, U204'_2, U22'_2, U21'_3, U212'_2, U211'_2, U222'_3, U221'_3, U32'_2, U31'_3, U41'_2, U51'_2, U161'_2, U191'_2} we have mu(f) = {1}. 7.21/2.78 The symbols in {isLNat_1, isNatural_1, isPLNat_1, ISLNAT_1, ISNATURAL_1, ISPLNAT_1, U_1} are not replacing on any position. 7.21/2.78 7.21/2.78 The ordinary context-sensitive dependency pairs DP_o are: 7.21/2.78 U101'(tt, V2) -> U102'(isLNat(V2)) 7.21/2.78 U101'(tt, V2) -> ISLNAT(V2) 7.21/2.78 U11'(tt, N, XS) -> U12'(isLNat(XS), N, XS) 7.21/2.78 U11'(tt, N, XS) -> ISLNAT(XS) 7.21/2.78 U12'(tt, N, XS) -> SND(splitAt(N, XS)) 7.21/2.78 U12'(tt, N, XS) -> SPLITAT(N, XS) 7.21/2.78 U131'(tt, V2) -> U132'(isLNat(V2)) 7.21/2.78 U131'(tt, V2) -> ISLNAT(V2) 7.21/2.78 U141'(tt, V2) -> U142'(isLNat(V2)) 7.21/2.78 U141'(tt, V2) -> ISLNAT(V2) 7.21/2.78 U151'(tt, V2) -> U152'(isLNat(V2)) 7.21/2.78 U151'(tt, V2) -> ISLNAT(V2) 7.21/2.78 U171'(tt, N, XS) -> U172'(isLNat(XS), N, XS) 7.21/2.78 U171'(tt, N, XS) -> ISLNAT(XS) 7.21/2.78 U172'(tt, N, XS) -> HEAD(afterNth(N, XS)) 7.21/2.78 U172'(tt, N, XS) -> AFTERNTH(N, XS) 7.21/2.78 U181'(tt, Y) -> U182'(isLNat(Y), Y) 7.21/2.78 U181'(tt, Y) -> ISLNAT(Y) 7.21/2.78 U201'(tt, N, X, XS) -> U202'(isNatural(X), N, X, XS) 7.21/2.78 U201'(tt, N, X, XS) -> ISNATURAL(X) 7.21/2.78 U202'(tt, N, X, XS) -> U203'(isLNat(XS), N, X, XS) 7.21/2.78 U202'(tt, N, X, XS) -> ISLNAT(XS) 7.21/2.78 U203'(tt, N, X, XS) -> U204'(splitAt(N, XS), X) 7.21/2.78 U203'(tt, N, X, XS) -> SPLITAT(N, XS) 7.21/2.78 U21'(tt, X, Y) -> U22'(isLNat(Y), X) 7.21/2.78 U21'(tt, X, Y) -> ISLNAT(Y) 7.21/2.78 U211'(tt, XS) -> U212'(isLNat(XS), XS) 7.21/2.78 U211'(tt, XS) -> ISLNAT(XS) 7.21/2.78 U221'(tt, N, XS) -> U222'(isLNat(XS), N, XS) 7.21/2.78 U221'(tt, N, XS) -> ISLNAT(XS) 7.21/2.78 U222'(tt, N, XS) -> FST(splitAt(N, XS)) 7.21/2.78 U222'(tt, N, XS) -> SPLITAT(N, XS) 7.21/2.78 U31'(tt, N, XS) -> U32'(isLNat(XS), N) 7.21/2.78 U31'(tt, N, XS) -> ISLNAT(XS) 7.21/2.78 U41'(tt, V2) -> U42'(isLNat(V2)) 7.21/2.78 U41'(tt, V2) -> ISLNAT(V2) 7.21/2.78 U51'(tt, V2) -> U52'(isLNat(V2)) 7.21/2.78 U51'(tt, V2) -> ISLNAT(V2) 7.21/2.78 AFTERNTH(N, XS) -> U11'(isNatural(N), N, XS) 7.21/2.78 AFTERNTH(N, XS) -> ISNATURAL(N) 7.21/2.78 FST(pair(X, Y)) -> U21'(isLNat(X), X, Y) 7.21/2.78 FST(pair(X, Y)) -> ISLNAT(X) 7.21/2.78 HEAD(cons(N, XS)) -> U31'(isNatural(N), N, XS) 7.21/2.78 HEAD(cons(N, XS)) -> ISNATURAL(N) 7.21/2.78 ISLNAT(afterNth(V1, V2)) -> U41'(isNatural(V1), V2) 7.21/2.78 ISLNAT(afterNth(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISLNAT(cons(V1, V2)) -> U51'(isNatural(V1), V2) 7.21/2.78 ISLNAT(cons(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISLNAT(fst(V1)) -> U61'(isPLNat(V1)) 7.21/2.78 ISLNAT(fst(V1)) -> ISPLNAT(V1) 7.21/2.78 ISLNAT(natsFrom(V1)) -> U71'(isNatural(V1)) 7.21/2.78 ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) 7.21/2.78 ISLNAT(snd(V1)) -> U81'(isPLNat(V1)) 7.21/2.78 ISLNAT(snd(V1)) -> ISPLNAT(V1) 7.21/2.78 ISLNAT(tail(V1)) -> U91'(isLNat(V1)) 7.21/2.78 ISLNAT(tail(V1)) -> ISLNAT(V1) 7.21/2.78 ISLNAT(take(V1, V2)) -> U101'(isNatural(V1), V2) 7.21/2.78 ISLNAT(take(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(head(V1)) -> U111'(isLNat(V1)) 7.21/2.78 ISNATURAL(head(V1)) -> ISLNAT(V1) 7.21/2.78 ISNATURAL(s(V1)) -> U121'(isNatural(V1)) 7.21/2.78 ISNATURAL(s(V1)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(sel(V1, V2)) -> U131'(isNatural(V1), V2) 7.21/2.78 ISNATURAL(sel(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISPLNAT(pair(V1, V2)) -> U141'(isLNat(V1), V2) 7.21/2.78 ISPLNAT(pair(V1, V2)) -> ISLNAT(V1) 7.21/2.78 ISPLNAT(splitAt(V1, V2)) -> U151'(isNatural(V1), V2) 7.21/2.78 ISPLNAT(splitAt(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 NATSFROM(N) -> U161'(isNatural(N), N) 7.21/2.78 NATSFROM(N) -> ISNATURAL(N) 7.21/2.78 SEL(N, XS) -> U171'(isNatural(N), N, XS) 7.21/2.78 SEL(N, XS) -> ISNATURAL(N) 7.21/2.78 SND(pair(X, Y)) -> U181'(isLNat(X), Y) 7.21/2.78 SND(pair(X, Y)) -> ISLNAT(X) 7.21/2.78 SPLITAT(0, XS) -> U191'(isLNat(XS), XS) 7.21/2.78 SPLITAT(0, XS) -> ISLNAT(XS) 7.21/2.78 SPLITAT(s(N), cons(X, XS)) -> U201'(isNatural(N), N, X, XS) 7.21/2.78 SPLITAT(s(N), cons(X, XS)) -> ISNATURAL(N) 7.21/2.78 TAIL(cons(N, XS)) -> U211'(isNatural(N), XS) 7.21/2.78 TAIL(cons(N, XS)) -> ISNATURAL(N) 7.21/2.78 TAKE(N, XS) -> U221'(isNatural(N), N, XS) 7.21/2.78 TAKE(N, XS) -> ISNATURAL(N) 7.21/2.78 7.21/2.78 The collapsing dependency pairs are DP_c: 7.21/2.78 U12'(tt, N, XS) -> N 7.21/2.78 U12'(tt, N, XS) -> XS 7.21/2.78 U161'(tt, N) -> N 7.21/2.78 U172'(tt, N, XS) -> N 7.21/2.78 U172'(tt, N, XS) -> XS 7.21/2.78 U182'(tt, Y) -> Y 7.21/2.78 U191'(tt, XS) -> XS 7.21/2.78 U203'(tt, N, X, XS) -> N 7.21/2.78 U203'(tt, N, X, XS) -> XS 7.21/2.78 U204'(pair(YS, ZS), X) -> X 7.21/2.78 U212'(tt, XS) -> XS 7.21/2.78 U22'(tt, X) -> X 7.21/2.78 U222'(tt, N, XS) -> N 7.21/2.78 U222'(tt, N, XS) -> XS 7.21/2.78 U32'(tt, N) -> N 7.21/2.78 7.21/2.78 7.21/2.78 The hidden terms of R are: 7.21/2.78 7.21/2.78 natsFrom(s(x0)) 7.21/2.78 7.21/2.78 Every hiding context is built from: 7.21/2.78 aprove.DPFramework.CSDPProblem.QCSDPProblem$1@85ebcd0 7.21/2.78 aprove.DPFramework.CSDPProblem.QCSDPProblem$1@10137bc6 7.21/2.78 7.21/2.78 Hence, the new unhiding pairs DP_u are : 7.21/2.78 U12'(tt, N, XS) -> U(N) 7.21/2.78 U12'(tt, N, XS) -> U(XS) 7.21/2.78 U161'(tt, N) -> U(N) 7.21/2.78 U172'(tt, N, XS) -> U(N) 7.21/2.78 U172'(tt, N, XS) -> U(XS) 7.21/2.78 U182'(tt, Y) -> U(Y) 7.21/2.78 U191'(tt, XS) -> U(XS) 7.21/2.78 U203'(tt, N, X, XS) -> U(N) 7.21/2.78 U203'(tt, N, X, XS) -> U(XS) 7.21/2.78 U204'(pair(YS, ZS), X) -> U(X) 7.21/2.78 U212'(tt, XS) -> U(XS) 7.21/2.78 U22'(tt, X) -> U(X) 7.21/2.78 U222'(tt, N, XS) -> U(N) 7.21/2.78 U222'(tt, N, XS) -> U(XS) 7.21/2.78 U32'(tt, N) -> U(N) 7.21/2.78 U(s(x_0)) -> U(x_0) 7.21/2.78 U(natsFrom(x_0)) -> U(x_0) 7.21/2.78 U(natsFrom(s(x0))) -> NATSFROM(s(x0)) 7.21/2.78 7.21/2.78 The TRS R consists of the following rules: 7.21/2.78 7.21/2.78 U101(tt, V2) -> U102(isLNat(V2)) 7.21/2.78 U102(tt) -> tt 7.21/2.78 U11(tt, N, XS) -> U12(isLNat(XS), N, XS) 7.21/2.78 U111(tt) -> tt 7.21/2.78 U12(tt, N, XS) -> snd(splitAt(N, XS)) 7.21/2.78 U121(tt) -> tt 7.21/2.78 U131(tt, V2) -> U132(isLNat(V2)) 7.21/2.78 U132(tt) -> tt 7.21/2.78 U141(tt, V2) -> U142(isLNat(V2)) 7.21/2.78 U142(tt) -> tt 7.21/2.78 U151(tt, V2) -> U152(isLNat(V2)) 7.21/2.78 U152(tt) -> tt 7.21/2.78 U161(tt, N) -> cons(N, natsFrom(s(N))) 7.21/2.78 U171(tt, N, XS) -> U172(isLNat(XS), N, XS) 7.21/2.78 U172(tt, N, XS) -> head(afterNth(N, XS)) 7.21/2.78 U181(tt, Y) -> U182(isLNat(Y), Y) 7.21/2.78 U182(tt, Y) -> Y 7.21/2.78 U191(tt, XS) -> pair(nil, XS) 7.21/2.78 U201(tt, N, X, XS) -> U202(isNatural(X), N, X, XS) 7.21/2.78 U202(tt, N, X, XS) -> U203(isLNat(XS), N, X, XS) 7.21/2.78 U203(tt, N, X, XS) -> U204(splitAt(N, XS), X) 7.21/2.78 U204(pair(YS, ZS), X) -> pair(cons(X, YS), ZS) 7.21/2.78 U21(tt, X, Y) -> U22(isLNat(Y), X) 7.21/2.78 U211(tt, XS) -> U212(isLNat(XS), XS) 7.21/2.78 U212(tt, XS) -> XS 7.21/2.78 U22(tt, X) -> X 7.21/2.78 U221(tt, N, XS) -> U222(isLNat(XS), N, XS) 7.21/2.78 U222(tt, N, XS) -> fst(splitAt(N, XS)) 7.21/2.78 U31(tt, N, XS) -> U32(isLNat(XS), N) 7.21/2.78 U32(tt, N) -> N 7.21/2.78 U41(tt, V2) -> U42(isLNat(V2)) 7.21/2.78 U42(tt) -> tt 7.21/2.78 U51(tt, V2) -> U52(isLNat(V2)) 7.21/2.78 U52(tt) -> tt 7.21/2.78 U61(tt) -> tt 7.21/2.78 U71(tt) -> tt 7.21/2.78 U81(tt) -> tt 7.21/2.78 U91(tt) -> tt 7.21/2.78 afterNth(N, XS) -> U11(isNatural(N), N, XS) 7.21/2.78 fst(pair(X, Y)) -> U21(isLNat(X), X, Y) 7.21/2.78 head(cons(N, XS)) -> U31(isNatural(N), N, XS) 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isLNat(cons(V1, V2)) -> U51(isNatural(V1), V2) 7.21/2.78 isLNat(fst(V1)) -> U61(isPLNat(V1)) 7.21/2.78 isLNat(natsFrom(V1)) -> U71(isNatural(V1)) 7.21/2.78 isLNat(snd(V1)) -> U81(isPLNat(V1)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 isLNat(take(V1, V2)) -> U101(isNatural(V1), V2) 7.21/2.78 isNatural(0) -> tt 7.21/2.78 isNatural(head(V1)) -> U111(isLNat(V1)) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isNatural(sel(V1, V2)) -> U131(isNatural(V1), V2) 7.21/2.78 isPLNat(pair(V1, V2)) -> U141(isLNat(V1), V2) 7.21/2.78 isPLNat(splitAt(V1, V2)) -> U151(isNatural(V1), V2) 7.21/2.78 natsFrom(N) -> U161(isNatural(N), N) 7.21/2.78 sel(N, XS) -> U171(isNatural(N), N, XS) 7.21/2.78 snd(pair(X, Y)) -> U181(isLNat(X), Y) 7.21/2.78 splitAt(0, XS) -> U191(isLNat(XS), XS) 7.21/2.78 splitAt(s(N), cons(X, XS)) -> U201(isNatural(N), N, X, XS) 7.21/2.78 tail(cons(N, XS)) -> U211(isNatural(N), XS) 7.21/2.78 take(N, XS) -> U221(isNatural(N), N, XS) 7.21/2.78 7.21/2.78 Q is empty. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (5) QCSDependencyGraphProof (EQUIVALENT) 7.21/2.78 The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 3 SCCs with 67 less nodes. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (6) 7.21/2.78 Complex Obligation (AND) 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (7) 7.21/2.78 Obligation: 7.21/2.78 Q-restricted context-sensitive dependency pair problem: 7.21/2.78 The symbols in {U102_1, U111_1, snd_1, splitAt_2, U121_1, U132_1, U142_1, U152_1, natsFrom_1, s_1, head_1, afterNth_2, pair_2, fst_1, U42_1, U52_1, U61_1, U71_1, U81_1, U91_1, tail_1, take_2, sel_2} are replacing on all positions. 7.21/2.78 For all symbols f in {U101_2, U11_3, U12_3, U131_2, U141_2, U151_2, U161_2, cons_2, U171_3, U172_3, U181_2, U182_2, U191_2, U201_4, U202_4, U203_4, U204_2, U21_3, U22_2, U211_2, U212_2, U221_3, U222_3, U31_3, U32_2, U41_2, U51_2, U41'_2, U51'_2, U131'_2, U141'_2, U101'_2, U151'_2} we have mu(f) = {1}. 7.21/2.78 The symbols in {isLNat_1, isNatural_1, isPLNat_1, ISLNAT_1, ISNATURAL_1, ISPLNAT_1} are not replacing on any position. 7.21/2.78 7.21/2.78 The TRS P consists of the following rules: 7.21/2.78 7.21/2.78 ISLNAT(afterNth(V1, V2)) -> U41'(isNatural(V1), V2) 7.21/2.78 U41'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(afterNth(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(head(V1)) -> ISLNAT(V1) 7.21/2.78 ISLNAT(cons(V1, V2)) -> U51'(isNatural(V1), V2) 7.21/2.78 U51'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(cons(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(s(V1)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(sel(V1, V2)) -> U131'(isNatural(V1), V2) 7.21/2.78 U131'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(fst(V1)) -> ISPLNAT(V1) 7.21/2.78 ISPLNAT(pair(V1, V2)) -> U141'(isLNat(V1), V2) 7.21/2.78 U141'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(sel(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISLNAT(snd(V1)) -> ISPLNAT(V1) 7.21/2.78 ISPLNAT(pair(V1, V2)) -> ISLNAT(V1) 7.21/2.78 ISLNAT(tail(V1)) -> ISLNAT(V1) 7.21/2.78 ISLNAT(take(V1, V2)) -> U101'(isNatural(V1), V2) 7.21/2.78 U101'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(take(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISPLNAT(splitAt(V1, V2)) -> U151'(isNatural(V1), V2) 7.21/2.78 U151'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISPLNAT(splitAt(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 7.21/2.78 The TRS R consists of the following rules: 7.21/2.78 7.21/2.78 U101(tt, V2) -> U102(isLNat(V2)) 7.21/2.78 U102(tt) -> tt 7.21/2.78 U11(tt, N, XS) -> U12(isLNat(XS), N, XS) 7.21/2.78 U111(tt) -> tt 7.21/2.78 U12(tt, N, XS) -> snd(splitAt(N, XS)) 7.21/2.78 U121(tt) -> tt 7.21/2.78 U131(tt, V2) -> U132(isLNat(V2)) 7.21/2.78 U132(tt) -> tt 7.21/2.78 U141(tt, V2) -> U142(isLNat(V2)) 7.21/2.78 U142(tt) -> tt 7.21/2.78 U151(tt, V2) -> U152(isLNat(V2)) 7.21/2.78 U152(tt) -> tt 7.21/2.78 U161(tt, N) -> cons(N, natsFrom(s(N))) 7.21/2.78 U171(tt, N, XS) -> U172(isLNat(XS), N, XS) 7.21/2.78 U172(tt, N, XS) -> head(afterNth(N, XS)) 7.21/2.78 U181(tt, Y) -> U182(isLNat(Y), Y) 7.21/2.78 U182(tt, Y) -> Y 7.21/2.78 U191(tt, XS) -> pair(nil, XS) 7.21/2.78 U201(tt, N, X, XS) -> U202(isNatural(X), N, X, XS) 7.21/2.78 U202(tt, N, X, XS) -> U203(isLNat(XS), N, X, XS) 7.21/2.78 U203(tt, N, X, XS) -> U204(splitAt(N, XS), X) 7.21/2.78 U204(pair(YS, ZS), X) -> pair(cons(X, YS), ZS) 7.21/2.78 U21(tt, X, Y) -> U22(isLNat(Y), X) 7.21/2.78 U211(tt, XS) -> U212(isLNat(XS), XS) 7.21/2.78 U212(tt, XS) -> XS 7.21/2.78 U22(tt, X) -> X 7.21/2.78 U221(tt, N, XS) -> U222(isLNat(XS), N, XS) 7.21/2.78 U222(tt, N, XS) -> fst(splitAt(N, XS)) 7.21/2.78 U31(tt, N, XS) -> U32(isLNat(XS), N) 7.21/2.78 U32(tt, N) -> N 7.21/2.78 U41(tt, V2) -> U42(isLNat(V2)) 7.21/2.78 U42(tt) -> tt 7.21/2.78 U51(tt, V2) -> U52(isLNat(V2)) 7.21/2.78 U52(tt) -> tt 7.21/2.78 U61(tt) -> tt 7.21/2.78 U71(tt) -> tt 7.21/2.78 U81(tt) -> tt 7.21/2.78 U91(tt) -> tt 7.21/2.78 afterNth(N, XS) -> U11(isNatural(N), N, XS) 7.21/2.78 fst(pair(X, Y)) -> U21(isLNat(X), X, Y) 7.21/2.78 head(cons(N, XS)) -> U31(isNatural(N), N, XS) 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isLNat(cons(V1, V2)) -> U51(isNatural(V1), V2) 7.21/2.78 isLNat(fst(V1)) -> U61(isPLNat(V1)) 7.21/2.78 isLNat(natsFrom(V1)) -> U71(isNatural(V1)) 7.21/2.78 isLNat(snd(V1)) -> U81(isPLNat(V1)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 isLNat(take(V1, V2)) -> U101(isNatural(V1), V2) 7.21/2.78 isNatural(0) -> tt 7.21/2.78 isNatural(head(V1)) -> U111(isLNat(V1)) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isNatural(sel(V1, V2)) -> U131(isNatural(V1), V2) 7.21/2.78 isPLNat(pair(V1, V2)) -> U141(isLNat(V1), V2) 7.21/2.78 isPLNat(splitAt(V1, V2)) -> U151(isNatural(V1), V2) 7.21/2.78 natsFrom(N) -> U161(isNatural(N), N) 7.21/2.78 sel(N, XS) -> U171(isNatural(N), N, XS) 7.21/2.78 snd(pair(X, Y)) -> U181(isLNat(X), Y) 7.21/2.78 splitAt(0, XS) -> U191(isLNat(XS), XS) 7.21/2.78 splitAt(s(N), cons(X, XS)) -> U201(isNatural(N), N, X, XS) 7.21/2.78 tail(cons(N, XS)) -> U211(isNatural(N), XS) 7.21/2.78 take(N, XS) -> U221(isNatural(N), N, XS) 7.21/2.78 7.21/2.78 Q is empty. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (8) QCSUsableRulesProof (EQUIVALENT) 7.21/2.78 The following rules are not useable [DA_EMMES] and can be deleted: 7.21/2.78 7.21/2.78 U11(tt, x0, x1) -> U12(isLNat(x1), x0, x1) 7.21/2.78 U12(tt, x0, x1) -> snd(splitAt(x0, x1)) 7.21/2.78 U161(tt, x0) -> cons(x0, natsFrom(s(x0))) 7.21/2.78 U171(tt, x0, x1) -> U172(isLNat(x1), x0, x1) 7.21/2.78 U172(tt, x0, x1) -> head(afterNth(x0, x1)) 7.21/2.78 U181(tt, x0) -> U182(isLNat(x0), x0) 7.21/2.78 U182(tt, x0) -> x0 7.21/2.78 U191(tt, x0) -> pair(nil, x0) 7.21/2.78 U201(tt, x0, x1, x2) -> U202(isNatural(x1), x0, x1, x2) 7.21/2.78 U202(tt, x0, x1, x2) -> U203(isLNat(x2), x0, x1, x2) 7.21/2.78 U203(tt, x0, x1, x2) -> U204(splitAt(x0, x2), x1) 7.21/2.78 U204(pair(x0, x1), x2) -> pair(cons(x2, x0), x1) 7.21/2.78 U21(tt, x0, x1) -> U22(isLNat(x1), x0) 7.21/2.78 U211(tt, x0) -> U212(isLNat(x0), x0) 7.21/2.78 U212(tt, x0) -> x0 7.21/2.78 U22(tt, x0) -> x0 7.21/2.78 U221(tt, x0, x1) -> U222(isLNat(x1), x0, x1) 7.21/2.78 U222(tt, x0, x1) -> fst(splitAt(x0, x1)) 7.21/2.78 U31(tt, x0, x1) -> U32(isLNat(x1), x0) 7.21/2.78 U32(tt, x0) -> x0 7.21/2.78 afterNth(x0, x1) -> U11(isNatural(x0), x0, x1) 7.21/2.78 fst(pair(x0, x1)) -> U21(isLNat(x0), x0, x1) 7.21/2.78 head(cons(x0, x1)) -> U31(isNatural(x0), x0, x1) 7.21/2.78 natsFrom(x0) -> U161(isNatural(x0), x0) 7.21/2.78 sel(x0, x1) -> U171(isNatural(x0), x0, x1) 7.21/2.78 snd(pair(x0, x1)) -> U181(isLNat(x0), x1) 7.21/2.78 splitAt(0, x0) -> U191(isLNat(x0), x0) 7.21/2.78 splitAt(s(x0), cons(x1, x2)) -> U201(isNatural(x0), x0, x1, x2) 7.21/2.78 tail(cons(x0, x1)) -> U211(isNatural(x0), x1) 7.21/2.78 take(x0, x1) -> U221(isNatural(x0), x0, x1) 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (9) 7.21/2.78 Obligation: 7.21/2.78 Q-restricted context-sensitive dependency pair problem: 7.21/2.78 The symbols in {head_1, U111_1, afterNth_2, s_1, U121_1, sel_2, U132_1, U52_1, fst_1, U61_1, pair_2, natsFrom_1, U71_1, snd_1, U81_1, splitAt_2, U152_1, tail_1, U91_1, take_2, U102_1, U142_1, U42_1} are replacing on all positions. 7.21/2.78 For all symbols f in {U41_2, U131_2, cons_2, U51_2, U141_2, U151_2, U101_2, U41'_2, U51'_2, U131'_2, U141'_2, U101'_2, U151'_2} we have mu(f) = {1}. 7.21/2.78 The symbols in {isNatural_1, isLNat_1, isPLNat_1, ISLNAT_1, ISNATURAL_1, ISPLNAT_1} are not replacing on any position. 7.21/2.78 7.21/2.78 The TRS P consists of the following rules: 7.21/2.78 7.21/2.78 ISLNAT(afterNth(V1, V2)) -> U41'(isNatural(V1), V2) 7.21/2.78 U41'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(afterNth(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(head(V1)) -> ISLNAT(V1) 7.21/2.78 ISLNAT(cons(V1, V2)) -> U51'(isNatural(V1), V2) 7.21/2.78 U51'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(cons(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(s(V1)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(sel(V1, V2)) -> U131'(isNatural(V1), V2) 7.21/2.78 U131'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(fst(V1)) -> ISPLNAT(V1) 7.21/2.78 ISPLNAT(pair(V1, V2)) -> U141'(isLNat(V1), V2) 7.21/2.78 U141'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(sel(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISLNAT(snd(V1)) -> ISPLNAT(V1) 7.21/2.78 ISPLNAT(pair(V1, V2)) -> ISLNAT(V1) 7.21/2.78 ISLNAT(tail(V1)) -> ISLNAT(V1) 7.21/2.78 ISLNAT(take(V1, V2)) -> U101'(isNatural(V1), V2) 7.21/2.78 U101'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(take(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISPLNAT(splitAt(V1, V2)) -> U151'(isNatural(V1), V2) 7.21/2.78 U151'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISPLNAT(splitAt(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 7.21/2.78 The TRS R consists of the following rules: 7.21/2.78 7.21/2.78 isNatural(0) -> tt 7.21/2.78 isNatural(head(V1)) -> U111(isLNat(V1)) 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isNatural(sel(V1, V2)) -> U131(isNatural(V1), V2) 7.21/2.78 U131(tt, V2) -> U132(isLNat(V2)) 7.21/2.78 isLNat(cons(V1, V2)) -> U51(isNatural(V1), V2) 7.21/2.78 U51(tt, V2) -> U52(isLNat(V2)) 7.21/2.78 isLNat(fst(V1)) -> U61(isPLNat(V1)) 7.21/2.78 isPLNat(pair(V1, V2)) -> U141(isLNat(V1), V2) 7.21/2.78 isLNat(natsFrom(V1)) -> U71(isNatural(V1)) 7.21/2.78 U71(tt) -> tt 7.21/2.78 isLNat(snd(V1)) -> U81(isPLNat(V1)) 7.21/2.78 isPLNat(splitAt(V1, V2)) -> U151(isNatural(V1), V2) 7.21/2.78 U151(tt, V2) -> U152(isLNat(V2)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 isLNat(take(V1, V2)) -> U101(isNatural(V1), V2) 7.21/2.78 U101(tt, V2) -> U102(isLNat(V2)) 7.21/2.78 U102(tt) -> tt 7.21/2.78 U91(tt) -> tt 7.21/2.78 U152(tt) -> tt 7.21/2.78 U81(tt) -> tt 7.21/2.78 U141(tt, V2) -> U142(isLNat(V2)) 7.21/2.78 U142(tt) -> tt 7.21/2.78 U61(tt) -> tt 7.21/2.78 U52(tt) -> tt 7.21/2.78 U132(tt) -> tt 7.21/2.78 U121(tt) -> tt 7.21/2.78 U41(tt, V2) -> U42(isLNat(V2)) 7.21/2.78 U42(tt) -> tt 7.21/2.78 U111(tt) -> tt 7.21/2.78 7.21/2.78 Q is empty. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (10) QCSDPMuMonotonicPoloProof (EQUIVALENT) 7.21/2.78 By using the following mu-monotonic polynomial ordering [POLO], at least one Dependency Pair or term rewrite system rule of this Q-CSDP problem can be strictly oriented and thus deleted. 7.21/2.78 7.21/2.78 Strictly oriented dependency pairs: 7.21/2.78 7.21/2.78 ISLNAT(afterNth(V1, V2)) -> U41'(isNatural(V1), V2) 7.21/2.78 U41'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(afterNth(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(head(V1)) -> ISLNAT(V1) 7.21/2.78 ISLNAT(cons(V1, V2)) -> U51'(isNatural(V1), V2) 7.21/2.78 U51'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(cons(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(sel(V1, V2)) -> U131'(isNatural(V1), V2) 7.21/2.78 U131'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(fst(V1)) -> ISPLNAT(V1) 7.21/2.78 ISPLNAT(pair(V1, V2)) -> U141'(isLNat(V1), V2) 7.21/2.78 U141'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(natsFrom(V1)) -> ISNATURAL(V1) 7.21/2.78 ISNATURAL(sel(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISLNAT(snd(V1)) -> ISPLNAT(V1) 7.21/2.78 ISPLNAT(pair(V1, V2)) -> ISLNAT(V1) 7.21/2.78 ISLNAT(take(V1, V2)) -> U101'(isNatural(V1), V2) 7.21/2.78 U101'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISLNAT(take(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 ISPLNAT(splitAt(V1, V2)) -> U151'(isNatural(V1), V2) 7.21/2.78 U151'(tt, V2) -> ISLNAT(V2) 7.21/2.78 ISPLNAT(splitAt(V1, V2)) -> ISNATURAL(V1) 7.21/2.78 7.21/2.78 Strictly oriented rules of the TRS R: 7.21/2.78 7.21/2.78 isNatural(0) -> tt 7.21/2.78 isNatural(head(V1)) -> U111(isLNat(V1)) 7.21/2.78 isNatural(sel(V1, V2)) -> U131(isNatural(V1), V2) 7.21/2.78 U131(tt, V2) -> U132(isLNat(V2)) 7.21/2.78 isLNat(cons(V1, V2)) -> U51(isNatural(V1), V2) 7.21/2.78 U51(tt, V2) -> U52(isLNat(V2)) 7.21/2.78 isLNat(fst(V1)) -> U61(isPLNat(V1)) 7.21/2.78 isPLNat(pair(V1, V2)) -> U141(isLNat(V1), V2) 7.21/2.78 isLNat(natsFrom(V1)) -> U71(isNatural(V1)) 7.21/2.78 U71(tt) -> tt 7.21/2.78 isLNat(snd(V1)) -> U81(isPLNat(V1)) 7.21/2.78 isPLNat(splitAt(V1, V2)) -> U151(isNatural(V1), V2) 7.21/2.78 U151(tt, V2) -> U152(isLNat(V2)) 7.21/2.78 isLNat(take(V1, V2)) -> U101(isNatural(V1), V2) 7.21/2.78 U101(tt, V2) -> U102(isLNat(V2)) 7.21/2.78 U102(tt) -> tt 7.21/2.78 U91(tt) -> tt 7.21/2.78 U152(tt) -> tt 7.21/2.78 U81(tt) -> tt 7.21/2.78 U141(tt, V2) -> U142(isLNat(V2)) 7.21/2.78 U142(tt) -> tt 7.21/2.78 U61(tt) -> tt 7.21/2.78 U52(tt) -> tt 7.21/2.78 U132(tt) -> tt 7.21/2.78 U121(tt) -> tt 7.21/2.78 U41(tt, V2) -> U42(isLNat(V2)) 7.21/2.78 U42(tt) -> tt 7.21/2.78 U111(tt) -> tt 7.21/2.78 7.21/2.78 Used ordering: POLO with Polynomial interpretation [POLO]: 7.21/2.78 7.21/2.78 POL(0) = 2 7.21/2.78 POL(ISLNAT(x_1)) = 1 + 2*x_1 7.21/2.78 POL(ISNATURAL(x_1)) = 2 + 2*x_1 7.21/2.78 POL(ISPLNAT(x_1)) = 1 + 2*x_1 7.21/2.78 POL(U101(x_1, x_2)) = x_1 + 2*x_2 7.21/2.78 POL(U101'(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 7.21/2.78 POL(U102(x_1)) = 1 + 2*x_1 7.21/2.78 POL(U111(x_1)) = 1 + 2*x_1 7.21/2.78 POL(U121(x_1)) = 2*x_1 7.21/2.78 POL(U131(x_1, x_2)) = 1 + x_1 + 2*x_2 7.21/2.78 POL(U131'(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 7.21/2.78 POL(U132(x_1)) = 2*x_1 7.21/2.78 POL(U141(x_1, x_2)) = x_1 + 2*x_2 7.21/2.78 POL(U141'(x_1, x_2)) = x_1 + 2*x_2 7.21/2.78 POL(U142(x_1)) = 1 + 2*x_1 7.21/2.78 POL(U151(x_1, x_2)) = x_1 + 2*x_2 7.21/2.78 POL(U151'(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 7.21/2.78 POL(U152(x_1)) = 1 + 2*x_1 7.21/2.78 POL(U41(x_1, x_2)) = 2 + x_1 + 2*x_2 7.21/2.78 POL(U41'(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 7.21/2.78 POL(U42(x_1)) = 1 + 2*x_1 7.21/2.78 POL(U51(x_1, x_2)) = x_1 + 2*x_2 7.21/2.78 POL(U51'(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 7.21/2.78 POL(U52(x_1)) = 1 + 2*x_1 7.21/2.78 POL(U61(x_1)) = 1 + 2*x_1 7.21/2.78 POL(U71(x_1)) = 1 + x_1 7.21/2.78 POL(U81(x_1)) = 1 + 2*x_1 7.21/2.78 POL(U91(x_1)) = 2*x_1 7.21/2.78 POL(afterNth(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 7.21/2.78 POL(cons(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 7.21/2.78 POL(fst(x_1)) = 2 + 2*x_1 7.21/2.78 POL(head(x_1)) = 2 + 2*x_1 7.21/2.78 POL(isLNat(x_1)) = x_1 7.21/2.78 POL(isNatural(x_1)) = 2*x_1 7.21/2.78 POL(isPLNat(x_1)) = x_1 7.21/2.78 POL(natsFrom(x_1)) = 2 + 2*x_1 7.21/2.78 POL(nil) = 2 7.21/2.78 POL(pair(x_1, x_2)) = 1 + x_1 + 2*x_2 7.21/2.78 POL(s(x_1)) = 2*x_1 7.21/2.78 POL(sel(x_1, x_2)) = 1 + 2*x_1 + 2*x_2 7.21/2.78 POL(snd(x_1)) = 2 + 2*x_1 7.21/2.78 POL(splitAt(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 7.21/2.78 POL(tail(x_1)) = 2*x_1 7.21/2.78 POL(take(x_1, x_2)) = 2 + 2*x_1 + 2*x_2 7.21/2.78 POL(tt) = 2 7.21/2.78 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (11) 7.21/2.78 Obligation: 7.21/2.78 Q-restricted context-sensitive dependency pair problem: 7.21/2.78 The symbols in {afterNth_2, s_1, U121_1, tail_1, U91_1} are replacing on all positions. 7.21/2.78 For all symbols f in {U41_2} we have mu(f) = {1}. 7.21/2.78 The symbols in {isLNat_1, isNatural_1, ISNATURAL_1, ISLNAT_1} are not replacing on any position. 7.21/2.78 7.21/2.78 The TRS P consists of the following rules: 7.21/2.78 7.21/2.78 ISNATURAL(s(V1)) -> ISNATURAL(V1) 7.21/2.78 ISLNAT(tail(V1)) -> ISLNAT(V1) 7.21/2.78 7.21/2.78 The TRS R consists of the following rules: 7.21/2.78 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 7.21/2.78 Q is empty. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (12) QCSDependencyGraphProof (EQUIVALENT) 7.21/2.78 The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 2 SCCs. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (13) 7.21/2.78 Complex Obligation (AND) 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (14) 7.21/2.78 Obligation: 7.21/2.78 Q-restricted context-sensitive dependency pair problem: 7.21/2.78 The symbols in {afterNth_2, s_1, U121_1, tail_1, U91_1} are replacing on all positions. 7.21/2.78 For all symbols f in {U41_2} we have mu(f) = {1}. 7.21/2.78 The symbols in {isLNat_1, isNatural_1, ISLNAT_1} are not replacing on any position. 7.21/2.78 7.21/2.78 The TRS P consists of the following rules: 7.21/2.78 7.21/2.78 ISLNAT(tail(V1)) -> ISLNAT(V1) 7.21/2.78 7.21/2.78 The TRS R consists of the following rules: 7.21/2.78 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 7.21/2.78 Q is empty. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (15) QCSDPSubtermProof (EQUIVALENT) 7.21/2.78 We use the subterm processor [DA_EMMES]. 7.21/2.78 7.21/2.78 7.21/2.78 The following pairs can be oriented strictly and are deleted. 7.21/2.78 7.21/2.78 ISLNAT(tail(V1)) -> ISLNAT(V1) 7.21/2.78 The remaining pairs can at least be oriented weakly. 7.21/2.78 none 7.21/2.78 Used ordering: Combined order from the following AFS and order. 7.21/2.78 ISLNAT(x1) = x1 7.21/2.78 7.21/2.78 7.21/2.78 Subterm Order 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (16) 7.21/2.78 Obligation: 7.21/2.78 Q-restricted context-sensitive dependency pair problem: 7.21/2.78 The symbols in {afterNth_2, s_1, U121_1, tail_1, U91_1} are replacing on all positions. 7.21/2.78 For all symbols f in {U41_2} we have mu(f) = {1}. 7.21/2.78 The symbols in {isLNat_1, isNatural_1} are not replacing on any position. 7.21/2.78 7.21/2.78 The TRS P consists of the following rules: 7.21/2.78 none 7.21/2.78 7.21/2.78 The TRS R consists of the following rules: 7.21/2.78 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 7.21/2.78 Q is empty. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (17) PIsEmptyProof (EQUIVALENT) 7.21/2.78 The TRS P is empty. Hence, there is no (P,Q,R,mu)-chain. 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (18) 7.21/2.78 YES 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (19) 7.21/2.78 Obligation: 7.21/2.78 Q-restricted context-sensitive dependency pair problem: 7.21/2.78 The symbols in {afterNth_2, s_1, U121_1, tail_1, U91_1} are replacing on all positions. 7.21/2.78 For all symbols f in {U41_2} we have mu(f) = {1}. 7.21/2.78 The symbols in {isLNat_1, isNatural_1, ISNATURAL_1} are not replacing on any position. 7.21/2.78 7.21/2.78 The TRS P consists of the following rules: 7.21/2.78 7.21/2.78 ISNATURAL(s(V1)) -> ISNATURAL(V1) 7.21/2.78 7.21/2.78 The TRS R consists of the following rules: 7.21/2.78 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 7.21/2.78 Q is empty. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (20) QCSDPSubtermProof (EQUIVALENT) 7.21/2.78 We use the subterm processor [DA_EMMES]. 7.21/2.78 7.21/2.78 7.21/2.78 The following pairs can be oriented strictly and are deleted. 7.21/2.78 7.21/2.78 ISNATURAL(s(V1)) -> ISNATURAL(V1) 7.21/2.78 The remaining pairs can at least be oriented weakly. 7.21/2.78 none 7.21/2.78 Used ordering: Combined order from the following AFS and order. 7.21/2.78 ISNATURAL(x1) = x1 7.21/2.78 7.21/2.78 7.21/2.78 Subterm Order 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (21) 7.21/2.78 Obligation: 7.21/2.78 Q-restricted context-sensitive dependency pair problem: 7.21/2.78 The symbols in {afterNth_2, s_1, U121_1, tail_1, U91_1} are replacing on all positions. 7.21/2.78 For all symbols f in {U41_2} we have mu(f) = {1}. 7.21/2.78 The symbols in {isLNat_1, isNatural_1} are not replacing on any position. 7.21/2.78 7.21/2.78 The TRS P consists of the following rules: 7.21/2.78 none 7.21/2.78 7.21/2.78 The TRS R consists of the following rules: 7.21/2.78 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 7.21/2.78 Q is empty. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (22) PIsEmptyProof (EQUIVALENT) 7.21/2.78 The TRS P is empty. Hence, there is no (P,Q,R,mu)-chain. 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (23) 7.21/2.78 YES 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (24) 7.21/2.78 Obligation: 7.21/2.78 Q-restricted context-sensitive dependency pair problem: 7.21/2.78 The symbols in {U102_1, U111_1, snd_1, splitAt_2, U121_1, U132_1, U142_1, U152_1, natsFrom_1, s_1, head_1, afterNth_2, pair_2, fst_1, U42_1, U52_1, U61_1, U71_1, U81_1, U91_1, tail_1, take_2, sel_2, NATSFROM_1} are replacing on all positions. 7.21/2.78 For all symbols f in {U101_2, U11_3, U12_3, U131_2, U141_2, U151_2, U161_2, cons_2, U171_3, U172_3, U181_2, U182_2, U191_2, U201_4, U202_4, U203_4, U204_2, U21_3, U22_2, U211_2, U212_2, U221_3, U222_3, U31_3, U32_2, U41_2, U51_2, U161'_2} we have mu(f) = {1}. 7.21/2.78 The symbols in {isLNat_1, isNatural_1, isPLNat_1, U_1} are not replacing on any position. 7.21/2.78 7.21/2.78 The TRS P consists of the following rules: 7.21/2.78 7.21/2.78 NATSFROM(N) -> U161'(isNatural(N), N) 7.21/2.78 U161'(tt, N) -> U(N) 7.21/2.78 U(s(x_0)) -> U(x_0) 7.21/2.78 U(natsFrom(x_0)) -> U(x_0) 7.21/2.78 U(natsFrom(s(x0))) -> NATSFROM(s(x0)) 7.21/2.78 7.21/2.78 The TRS R consists of the following rules: 7.21/2.78 7.21/2.78 U101(tt, V2) -> U102(isLNat(V2)) 7.21/2.78 U102(tt) -> tt 7.21/2.78 U11(tt, N, XS) -> U12(isLNat(XS), N, XS) 7.21/2.78 U111(tt) -> tt 7.21/2.78 U12(tt, N, XS) -> snd(splitAt(N, XS)) 7.21/2.78 U121(tt) -> tt 7.21/2.78 U131(tt, V2) -> U132(isLNat(V2)) 7.21/2.78 U132(tt) -> tt 7.21/2.78 U141(tt, V2) -> U142(isLNat(V2)) 7.21/2.78 U142(tt) -> tt 7.21/2.78 U151(tt, V2) -> U152(isLNat(V2)) 7.21/2.78 U152(tt) -> tt 7.21/2.78 U161(tt, N) -> cons(N, natsFrom(s(N))) 7.21/2.78 U171(tt, N, XS) -> U172(isLNat(XS), N, XS) 7.21/2.78 U172(tt, N, XS) -> head(afterNth(N, XS)) 7.21/2.78 U181(tt, Y) -> U182(isLNat(Y), Y) 7.21/2.78 U182(tt, Y) -> Y 7.21/2.78 U191(tt, XS) -> pair(nil, XS) 7.21/2.78 U201(tt, N, X, XS) -> U202(isNatural(X), N, X, XS) 7.21/2.78 U202(tt, N, X, XS) -> U203(isLNat(XS), N, X, XS) 7.21/2.78 U203(tt, N, X, XS) -> U204(splitAt(N, XS), X) 7.21/2.78 U204(pair(YS, ZS), X) -> pair(cons(X, YS), ZS) 7.21/2.78 U21(tt, X, Y) -> U22(isLNat(Y), X) 7.21/2.78 U211(tt, XS) -> U212(isLNat(XS), XS) 7.21/2.78 U212(tt, XS) -> XS 7.21/2.78 U22(tt, X) -> X 7.21/2.78 U221(tt, N, XS) -> U222(isLNat(XS), N, XS) 7.21/2.78 U222(tt, N, XS) -> fst(splitAt(N, XS)) 7.21/2.78 U31(tt, N, XS) -> U32(isLNat(XS), N) 7.21/2.78 U32(tt, N) -> N 7.21/2.78 U41(tt, V2) -> U42(isLNat(V2)) 7.21/2.78 U42(tt) -> tt 7.21/2.78 U51(tt, V2) -> U52(isLNat(V2)) 7.21/2.78 U52(tt) -> tt 7.21/2.78 U61(tt) -> tt 7.21/2.78 U71(tt) -> tt 7.21/2.78 U81(tt) -> tt 7.21/2.78 U91(tt) -> tt 7.21/2.78 afterNth(N, XS) -> U11(isNatural(N), N, XS) 7.21/2.78 fst(pair(X, Y)) -> U21(isLNat(X), X, Y) 7.21/2.78 head(cons(N, XS)) -> U31(isNatural(N), N, XS) 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isLNat(cons(V1, V2)) -> U51(isNatural(V1), V2) 7.21/2.78 isLNat(fst(V1)) -> U61(isPLNat(V1)) 7.21/2.78 isLNat(natsFrom(V1)) -> U71(isNatural(V1)) 7.21/2.78 isLNat(snd(V1)) -> U81(isPLNat(V1)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 isLNat(take(V1, V2)) -> U101(isNatural(V1), V2) 7.21/2.78 isNatural(0) -> tt 7.21/2.78 isNatural(head(V1)) -> U111(isLNat(V1)) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isNatural(sel(V1, V2)) -> U131(isNatural(V1), V2) 7.21/2.78 isPLNat(pair(V1, V2)) -> U141(isLNat(V1), V2) 7.21/2.78 isPLNat(splitAt(V1, V2)) -> U151(isNatural(V1), V2) 7.21/2.78 natsFrom(N) -> U161(isNatural(N), N) 7.21/2.78 sel(N, XS) -> U171(isNatural(N), N, XS) 7.21/2.78 snd(pair(X, Y)) -> U181(isLNat(X), Y) 7.21/2.78 splitAt(0, XS) -> U191(isLNat(XS), XS) 7.21/2.78 splitAt(s(N), cons(X, XS)) -> U201(isNatural(N), N, X, XS) 7.21/2.78 tail(cons(N, XS)) -> U211(isNatural(N), XS) 7.21/2.78 take(N, XS) -> U221(isNatural(N), N, XS) 7.21/2.78 7.21/2.78 Q is empty. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (25) QCSDPSubtermProof (EQUIVALENT) 7.21/2.78 We use the subterm processor [DA_EMMES]. 7.21/2.78 7.21/2.78 7.21/2.78 The following pairs can be oriented strictly and are deleted. 7.21/2.78 7.21/2.78 U(s(x_0)) -> U(x_0) 7.21/2.78 U(natsFrom(x_0)) -> U(x_0) 7.21/2.78 U(natsFrom(s(x0))) -> NATSFROM(s(x0)) 7.21/2.78 The remaining pairs can at least be oriented weakly. 7.21/2.78 7.21/2.78 NATSFROM(N) -> U161'(isNatural(N), N) 7.21/2.78 U161'(tt, N) -> U(N) 7.21/2.78 Used ordering: Combined order from the following AFS and order. 7.21/2.78 U161'(x1, x2) = x2 7.21/2.78 7.21/2.78 NATSFROM(x1) = x1 7.21/2.78 7.21/2.78 U(x1) = x1 7.21/2.78 7.21/2.78 7.21/2.78 Subterm Order 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (26) 7.21/2.78 Obligation: 7.21/2.78 Q-restricted context-sensitive dependency pair problem: 7.21/2.78 The symbols in {U102_1, U111_1, snd_1, splitAt_2, U121_1, U132_1, U142_1, U152_1, natsFrom_1, s_1, head_1, afterNth_2, pair_2, fst_1, U42_1, U52_1, U61_1, U71_1, U81_1, U91_1, tail_1, take_2, sel_2, NATSFROM_1} are replacing on all positions. 7.21/2.78 For all symbols f in {U101_2, U11_3, U12_3, U131_2, U141_2, U151_2, U161_2, cons_2, U171_3, U172_3, U181_2, U182_2, U191_2, U201_4, U202_4, U203_4, U204_2, U21_3, U22_2, U211_2, U212_2, U221_3, U222_3, U31_3, U32_2, U41_2, U51_2, U161'_2} we have mu(f) = {1}. 7.21/2.78 The symbols in {isLNat_1, isNatural_1, isPLNat_1, U_1} are not replacing on any position. 7.21/2.78 7.21/2.78 The TRS P consists of the following rules: 7.21/2.78 7.21/2.78 NATSFROM(N) -> U161'(isNatural(N), N) 7.21/2.78 U161'(tt, N) -> U(N) 7.21/2.78 7.21/2.78 The TRS R consists of the following rules: 7.21/2.78 7.21/2.78 U101(tt, V2) -> U102(isLNat(V2)) 7.21/2.78 U102(tt) -> tt 7.21/2.78 U11(tt, N, XS) -> U12(isLNat(XS), N, XS) 7.21/2.78 U111(tt) -> tt 7.21/2.78 U12(tt, N, XS) -> snd(splitAt(N, XS)) 7.21/2.78 U121(tt) -> tt 7.21/2.78 U131(tt, V2) -> U132(isLNat(V2)) 7.21/2.78 U132(tt) -> tt 7.21/2.78 U141(tt, V2) -> U142(isLNat(V2)) 7.21/2.78 U142(tt) -> tt 7.21/2.78 U151(tt, V2) -> U152(isLNat(V2)) 7.21/2.78 U152(tt) -> tt 7.21/2.78 U161(tt, N) -> cons(N, natsFrom(s(N))) 7.21/2.78 U171(tt, N, XS) -> U172(isLNat(XS), N, XS) 7.21/2.78 U172(tt, N, XS) -> head(afterNth(N, XS)) 7.21/2.78 U181(tt, Y) -> U182(isLNat(Y), Y) 7.21/2.78 U182(tt, Y) -> Y 7.21/2.78 U191(tt, XS) -> pair(nil, XS) 7.21/2.78 U201(tt, N, X, XS) -> U202(isNatural(X), N, X, XS) 7.21/2.78 U202(tt, N, X, XS) -> U203(isLNat(XS), N, X, XS) 7.21/2.78 U203(tt, N, X, XS) -> U204(splitAt(N, XS), X) 7.21/2.78 U204(pair(YS, ZS), X) -> pair(cons(X, YS), ZS) 7.21/2.78 U21(tt, X, Y) -> U22(isLNat(Y), X) 7.21/2.78 U211(tt, XS) -> U212(isLNat(XS), XS) 7.21/2.78 U212(tt, XS) -> XS 7.21/2.78 U22(tt, X) -> X 7.21/2.78 U221(tt, N, XS) -> U222(isLNat(XS), N, XS) 7.21/2.78 U222(tt, N, XS) -> fst(splitAt(N, XS)) 7.21/2.78 U31(tt, N, XS) -> U32(isLNat(XS), N) 7.21/2.78 U32(tt, N) -> N 7.21/2.78 U41(tt, V2) -> U42(isLNat(V2)) 7.21/2.78 U42(tt) -> tt 7.21/2.78 U51(tt, V2) -> U52(isLNat(V2)) 7.21/2.78 U52(tt) -> tt 7.21/2.78 U61(tt) -> tt 7.21/2.78 U71(tt) -> tt 7.21/2.78 U81(tt) -> tt 7.21/2.78 U91(tt) -> tt 7.21/2.78 afterNth(N, XS) -> U11(isNatural(N), N, XS) 7.21/2.78 fst(pair(X, Y)) -> U21(isLNat(X), X, Y) 7.21/2.78 head(cons(N, XS)) -> U31(isNatural(N), N, XS) 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isLNat(cons(V1, V2)) -> U51(isNatural(V1), V2) 7.21/2.78 isLNat(fst(V1)) -> U61(isPLNat(V1)) 7.21/2.78 isLNat(natsFrom(V1)) -> U71(isNatural(V1)) 7.21/2.78 isLNat(snd(V1)) -> U81(isPLNat(V1)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 isLNat(take(V1, V2)) -> U101(isNatural(V1), V2) 7.21/2.78 isNatural(0) -> tt 7.21/2.78 isNatural(head(V1)) -> U111(isLNat(V1)) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isNatural(sel(V1, V2)) -> U131(isNatural(V1), V2) 7.21/2.78 isPLNat(pair(V1, V2)) -> U141(isLNat(V1), V2) 7.21/2.78 isPLNat(splitAt(V1, V2)) -> U151(isNatural(V1), V2) 7.21/2.78 natsFrom(N) -> U161(isNatural(N), N) 7.21/2.78 sel(N, XS) -> U171(isNatural(N), N, XS) 7.21/2.78 snd(pair(X, Y)) -> U181(isLNat(X), Y) 7.21/2.78 splitAt(0, XS) -> U191(isLNat(XS), XS) 7.21/2.78 splitAt(s(N), cons(X, XS)) -> U201(isNatural(N), N, X, XS) 7.21/2.78 tail(cons(N, XS)) -> U211(isNatural(N), XS) 7.21/2.78 take(N, XS) -> U221(isNatural(N), N, XS) 7.21/2.78 7.21/2.78 Q is empty. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (27) QCSDependencyGraphProof (EQUIVALENT) 7.21/2.78 The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 0 SCCs with 2 less nodes. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (28) 7.21/2.78 TRUE 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (29) 7.21/2.78 Obligation: 7.21/2.78 Q-restricted context-sensitive dependency pair problem: 7.21/2.78 The symbols in {U102_1, U111_1, snd_1, splitAt_2, U121_1, U132_1, U142_1, U152_1, natsFrom_1, s_1, head_1, afterNth_2, pair_2, fst_1, U42_1, U52_1, U61_1, U71_1, U81_1, U91_1, tail_1, take_2, sel_2, SPLITAT_2} are replacing on all positions. 7.21/2.78 For all symbols f in {U101_2, U11_3, U12_3, U131_2, U141_2, U151_2, U161_2, cons_2, U171_3, U172_3, U181_2, U182_2, U191_2, U201_4, U202_4, U203_4, U204_2, U21_3, U22_2, U211_2, U212_2, U221_3, U222_3, U31_3, U32_2, U41_2, U51_2, U202'_4, U201'_4, U203'_4} we have mu(f) = {1}. 7.21/2.78 The symbols in {isLNat_1, isNatural_1, isPLNat_1} are not replacing on any position. 7.21/2.78 7.21/2.78 The TRS P consists of the following rules: 7.21/2.78 7.21/2.78 U201'(tt, N, X, XS) -> U202'(isNatural(X), N, X, XS) 7.21/2.78 U202'(tt, N, X, XS) -> U203'(isLNat(XS), N, X, XS) 7.21/2.78 U203'(tt, N, X, XS) -> SPLITAT(N, XS) 7.21/2.78 SPLITAT(s(N), cons(X, XS)) -> U201'(isNatural(N), N, X, XS) 7.21/2.78 7.21/2.78 The TRS R consists of the following rules: 7.21/2.78 7.21/2.78 U101(tt, V2) -> U102(isLNat(V2)) 7.21/2.78 U102(tt) -> tt 7.21/2.78 U11(tt, N, XS) -> U12(isLNat(XS), N, XS) 7.21/2.78 U111(tt) -> tt 7.21/2.78 U12(tt, N, XS) -> snd(splitAt(N, XS)) 7.21/2.78 U121(tt) -> tt 7.21/2.78 U131(tt, V2) -> U132(isLNat(V2)) 7.21/2.78 U132(tt) -> tt 7.21/2.78 U141(tt, V2) -> U142(isLNat(V2)) 7.21/2.78 U142(tt) -> tt 7.21/2.78 U151(tt, V2) -> U152(isLNat(V2)) 7.21/2.78 U152(tt) -> tt 7.21/2.78 U161(tt, N) -> cons(N, natsFrom(s(N))) 7.21/2.78 U171(tt, N, XS) -> U172(isLNat(XS), N, XS) 7.21/2.78 U172(tt, N, XS) -> head(afterNth(N, XS)) 7.21/2.78 U181(tt, Y) -> U182(isLNat(Y), Y) 7.21/2.78 U182(tt, Y) -> Y 7.21/2.78 U191(tt, XS) -> pair(nil, XS) 7.21/2.78 U201(tt, N, X, XS) -> U202(isNatural(X), N, X, XS) 7.21/2.78 U202(tt, N, X, XS) -> U203(isLNat(XS), N, X, XS) 7.21/2.78 U203(tt, N, X, XS) -> U204(splitAt(N, XS), X) 7.21/2.78 U204(pair(YS, ZS), X) -> pair(cons(X, YS), ZS) 7.21/2.78 U21(tt, X, Y) -> U22(isLNat(Y), X) 7.21/2.78 U211(tt, XS) -> U212(isLNat(XS), XS) 7.21/2.78 U212(tt, XS) -> XS 7.21/2.78 U22(tt, X) -> X 7.21/2.78 U221(tt, N, XS) -> U222(isLNat(XS), N, XS) 7.21/2.78 U222(tt, N, XS) -> fst(splitAt(N, XS)) 7.21/2.78 U31(tt, N, XS) -> U32(isLNat(XS), N) 7.21/2.78 U32(tt, N) -> N 7.21/2.78 U41(tt, V2) -> U42(isLNat(V2)) 7.21/2.78 U42(tt) -> tt 7.21/2.78 U51(tt, V2) -> U52(isLNat(V2)) 7.21/2.78 U52(tt) -> tt 7.21/2.78 U61(tt) -> tt 7.21/2.78 U71(tt) -> tt 7.21/2.78 U81(tt) -> tt 7.21/2.78 U91(tt) -> tt 7.21/2.78 afterNth(N, XS) -> U11(isNatural(N), N, XS) 7.21/2.78 fst(pair(X, Y)) -> U21(isLNat(X), X, Y) 7.21/2.78 head(cons(N, XS)) -> U31(isNatural(N), N, XS) 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isLNat(cons(V1, V2)) -> U51(isNatural(V1), V2) 7.21/2.78 isLNat(fst(V1)) -> U61(isPLNat(V1)) 7.21/2.78 isLNat(natsFrom(V1)) -> U71(isNatural(V1)) 7.21/2.78 isLNat(snd(V1)) -> U81(isPLNat(V1)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 isLNat(take(V1, V2)) -> U101(isNatural(V1), V2) 7.21/2.78 isNatural(0) -> tt 7.21/2.78 isNatural(head(V1)) -> U111(isLNat(V1)) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isNatural(sel(V1, V2)) -> U131(isNatural(V1), V2) 7.21/2.78 isPLNat(pair(V1, V2)) -> U141(isLNat(V1), V2) 7.21/2.78 isPLNat(splitAt(V1, V2)) -> U151(isNatural(V1), V2) 7.21/2.78 natsFrom(N) -> U161(isNatural(N), N) 7.21/2.78 sel(N, XS) -> U171(isNatural(N), N, XS) 7.21/2.78 snd(pair(X, Y)) -> U181(isLNat(X), Y) 7.21/2.78 splitAt(0, XS) -> U191(isLNat(XS), XS) 7.21/2.78 splitAt(s(N), cons(X, XS)) -> U201(isNatural(N), N, X, XS) 7.21/2.78 tail(cons(N, XS)) -> U211(isNatural(N), XS) 7.21/2.78 take(N, XS) -> U221(isNatural(N), N, XS) 7.21/2.78 7.21/2.78 Q is empty. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (30) QCSDPSubtermProof (EQUIVALENT) 7.21/2.78 We use the subterm processor [DA_EMMES]. 7.21/2.78 7.21/2.78 7.21/2.78 The following pairs can be oriented strictly and are deleted. 7.21/2.78 7.21/2.78 SPLITAT(s(N), cons(X, XS)) -> U201'(isNatural(N), N, X, XS) 7.21/2.78 The remaining pairs can at least be oriented weakly. 7.21/2.78 7.21/2.78 U201'(tt, N, X, XS) -> U202'(isNatural(X), N, X, XS) 7.21/2.78 U202'(tt, N, X, XS) -> U203'(isLNat(XS), N, X, XS) 7.21/2.78 U203'(tt, N, X, XS) -> SPLITAT(N, XS) 7.21/2.78 Used ordering: Combined order from the following AFS and order. 7.21/2.78 U202'(x1, x2, x3, x4) = x2 7.21/2.78 7.21/2.78 U201'(x1, x2, x3, x4) = x2 7.21/2.78 7.21/2.78 U203'(x1, x2, x3, x4) = x2 7.21/2.78 7.21/2.78 SPLITAT(x1, x2) = x1 7.21/2.78 7.21/2.78 7.21/2.78 Subterm Order 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (31) 7.21/2.78 Obligation: 7.21/2.78 Q-restricted context-sensitive dependency pair problem: 7.21/2.78 The symbols in {U102_1, U111_1, snd_1, splitAt_2, U121_1, U132_1, U142_1, U152_1, natsFrom_1, s_1, head_1, afterNth_2, pair_2, fst_1, U42_1, U52_1, U61_1, U71_1, U81_1, U91_1, tail_1, take_2, sel_2, SPLITAT_2} are replacing on all positions. 7.21/2.78 For all symbols f in {U101_2, U11_3, U12_3, U131_2, U141_2, U151_2, U161_2, cons_2, U171_3, U172_3, U181_2, U182_2, U191_2, U201_4, U202_4, U203_4, U204_2, U21_3, U22_2, U211_2, U212_2, U221_3, U222_3, U31_3, U32_2, U41_2, U51_2, U202'_4, U201'_4, U203'_4} we have mu(f) = {1}. 7.21/2.78 The symbols in {isLNat_1, isNatural_1, isPLNat_1} are not replacing on any position. 7.21/2.78 7.21/2.78 The TRS P consists of the following rules: 7.21/2.78 7.21/2.78 U201'(tt, N, X, XS) -> U202'(isNatural(X), N, X, XS) 7.21/2.78 U202'(tt, N, X, XS) -> U203'(isLNat(XS), N, X, XS) 7.21/2.78 U203'(tt, N, X, XS) -> SPLITAT(N, XS) 7.21/2.78 7.21/2.78 The TRS R consists of the following rules: 7.21/2.78 7.21/2.78 U101(tt, V2) -> U102(isLNat(V2)) 7.21/2.78 U102(tt) -> tt 7.21/2.78 U11(tt, N, XS) -> U12(isLNat(XS), N, XS) 7.21/2.78 U111(tt) -> tt 7.21/2.78 U12(tt, N, XS) -> snd(splitAt(N, XS)) 7.21/2.78 U121(tt) -> tt 7.21/2.78 U131(tt, V2) -> U132(isLNat(V2)) 7.21/2.78 U132(tt) -> tt 7.21/2.78 U141(tt, V2) -> U142(isLNat(V2)) 7.21/2.78 U142(tt) -> tt 7.21/2.78 U151(tt, V2) -> U152(isLNat(V2)) 7.21/2.78 U152(tt) -> tt 7.21/2.78 U161(tt, N) -> cons(N, natsFrom(s(N))) 7.21/2.78 U171(tt, N, XS) -> U172(isLNat(XS), N, XS) 7.21/2.78 U172(tt, N, XS) -> head(afterNth(N, XS)) 7.21/2.78 U181(tt, Y) -> U182(isLNat(Y), Y) 7.21/2.78 U182(tt, Y) -> Y 7.21/2.78 U191(tt, XS) -> pair(nil, XS) 7.21/2.78 U201(tt, N, X, XS) -> U202(isNatural(X), N, X, XS) 7.21/2.78 U202(tt, N, X, XS) -> U203(isLNat(XS), N, X, XS) 7.21/2.78 U203(tt, N, X, XS) -> U204(splitAt(N, XS), X) 7.21/2.78 U204(pair(YS, ZS), X) -> pair(cons(X, YS), ZS) 7.21/2.78 U21(tt, X, Y) -> U22(isLNat(Y), X) 7.21/2.78 U211(tt, XS) -> U212(isLNat(XS), XS) 7.21/2.78 U212(tt, XS) -> XS 7.21/2.78 U22(tt, X) -> X 7.21/2.78 U221(tt, N, XS) -> U222(isLNat(XS), N, XS) 7.21/2.78 U222(tt, N, XS) -> fst(splitAt(N, XS)) 7.21/2.78 U31(tt, N, XS) -> U32(isLNat(XS), N) 7.21/2.78 U32(tt, N) -> N 7.21/2.78 U41(tt, V2) -> U42(isLNat(V2)) 7.21/2.78 U42(tt) -> tt 7.21/2.78 U51(tt, V2) -> U52(isLNat(V2)) 7.21/2.78 U52(tt) -> tt 7.21/2.78 U61(tt) -> tt 7.21/2.78 U71(tt) -> tt 7.21/2.78 U81(tt) -> tt 7.21/2.78 U91(tt) -> tt 7.21/2.78 afterNth(N, XS) -> U11(isNatural(N), N, XS) 7.21/2.78 fst(pair(X, Y)) -> U21(isLNat(X), X, Y) 7.21/2.78 head(cons(N, XS)) -> U31(isNatural(N), N, XS) 7.21/2.78 isLNat(nil) -> tt 7.21/2.78 isLNat(afterNth(V1, V2)) -> U41(isNatural(V1), V2) 7.21/2.78 isLNat(cons(V1, V2)) -> U51(isNatural(V1), V2) 7.21/2.78 isLNat(fst(V1)) -> U61(isPLNat(V1)) 7.21/2.78 isLNat(natsFrom(V1)) -> U71(isNatural(V1)) 7.21/2.78 isLNat(snd(V1)) -> U81(isPLNat(V1)) 7.21/2.78 isLNat(tail(V1)) -> U91(isLNat(V1)) 7.21/2.78 isLNat(take(V1, V2)) -> U101(isNatural(V1), V2) 7.21/2.78 isNatural(0) -> tt 7.21/2.78 isNatural(head(V1)) -> U111(isLNat(V1)) 7.21/2.78 isNatural(s(V1)) -> U121(isNatural(V1)) 7.21/2.78 isNatural(sel(V1, V2)) -> U131(isNatural(V1), V2) 7.21/2.78 isPLNat(pair(V1, V2)) -> U141(isLNat(V1), V2) 7.21/2.78 isPLNat(splitAt(V1, V2)) -> U151(isNatural(V1), V2) 7.21/2.78 natsFrom(N) -> U161(isNatural(N), N) 7.21/2.78 sel(N, XS) -> U171(isNatural(N), N, XS) 7.21/2.78 snd(pair(X, Y)) -> U181(isLNat(X), Y) 7.21/2.78 splitAt(0, XS) -> U191(isLNat(XS), XS) 7.21/2.78 splitAt(s(N), cons(X, XS)) -> U201(isNatural(N), N, X, XS) 7.21/2.78 tail(cons(N, XS)) -> U211(isNatural(N), XS) 7.21/2.78 take(N, XS) -> U221(isNatural(N), N, XS) 7.21/2.78 7.21/2.78 Q is empty. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (32) QCSDependencyGraphProof (EQUIVALENT) 7.21/2.78 The approximation of the Context-Sensitive Dependency Graph [LPAR08] contains 0 SCCs with 3 less nodes. 7.21/2.78 7.21/2.78 ---------------------------------------- 7.21/2.78 7.21/2.78 (33) 7.21/2.78 TRUE 7.49/2.81 EOF