Runtime Complexity TRS:
The TRS R consists of the following rules:
U11(tt, N, XS) → U12(tt, activate(N), activate(XS))
U12(tt, N, XS) → snd(splitAt(activate(N), activate(XS)))
U21(tt, X) → U22(tt, activate(X))
U22(tt, X) → activate(X)
U31(tt, N) → U32(tt, activate(N))
U32(tt, N) → activate(N)
U41(tt, N, XS) → U42(tt, activate(N), activate(XS))
U42(tt, N, XS) → head(afterNth(activate(N), activate(XS)))
U51(tt, Y) → U52(tt, activate(Y))
U52(tt, Y) → activate(Y)
U61(tt, N, X, XS) → U62(tt, activate(N), activate(X), activate(XS))
U62(tt, N, X, XS) → U63(tt, activate(N), activate(X), activate(XS))
U63(tt, N, X, XS) → U64(splitAt(activate(N), activate(XS)), activate(X))
U64(pair(YS, ZS), X) → pair(cons(activate(X), YS), ZS)
U71(tt, XS) → U72(tt, activate(XS))
U72(tt, XS) → activate(XS)
U81(tt, N, XS) → U82(tt, activate(N), activate(XS))
U82(tt, N, XS) → fst(splitAt(activate(N), activate(XS)))
afterNth(N, XS) → U11(tt, N, XS)
fst(pair(X, Y)) → U21(tt, X)
head(cons(N, XS)) → U31(tt, N)
natsFrom(N) → cons(N, n__natsFrom(n__s(N)))
sel(N, XS) → U41(tt, N, XS)
snd(pair(X, Y)) → U51(tt, Y)
splitAt(0, XS) → pair(nil, XS)
splitAt(s(N), cons(X, XS)) → U61(tt, N, X, activate(XS))
tail(cons(N, XS)) → U71(tt, activate(XS))
take(N, XS) → U81(tt, N, XS)
natsFrom(X) → n__natsFrom(X)
s(X) → n__s(X)
activate(n__natsFrom(X)) → natsFrom(activate(X))
activate(n__s(X)) → s(activate(X))
activate(X) → X
Renamed function symbols to avoid clashes with predefined symbol.
Runtime Complexity TRS:
The TRS R consists of the following rules:
U11'(tt', N, XS) → U12'(tt', activate'(N), activate'(XS))
U12'(tt', N, XS) → snd'(splitAt'(activate'(N), activate'(XS)))
U21'(tt', X) → U22'(tt', activate'(X))
U22'(tt', X) → activate'(X)
U31'(tt', N) → U32'(tt', activate'(N))
U32'(tt', N) → activate'(N)
U41'(tt', N, XS) → U42'(tt', activate'(N), activate'(XS))
U42'(tt', N, XS) → head'(afterNth'(activate'(N), activate'(XS)))
U51'(tt', Y) → U52'(tt', activate'(Y))
U52'(tt', Y) → activate'(Y)
U61'(tt', N, X, XS) → U62'(tt', activate'(N), activate'(X), activate'(XS))
U62'(tt', N, X, XS) → U63'(tt', activate'(N), activate'(X), activate'(XS))
U63'(tt', N, X, XS) → U64'(splitAt'(activate'(N), activate'(XS)), activate'(X))
U64'(pair'(YS, ZS), X) → pair'(cons'(activate'(X), YS), ZS)
U71'(tt', XS) → U72'(tt', activate'(XS))
U72'(tt', XS) → activate'(XS)
U81'(tt', N, XS) → U82'(tt', activate'(N), activate'(XS))
U82'(tt', N, XS) → fst'(splitAt'(activate'(N), activate'(XS)))
afterNth'(N, XS) → U11'(tt', N, XS)
fst'(pair'(X, Y)) → U21'(tt', X)
head'(cons'(N, XS)) → U31'(tt', N)
natsFrom'(N) → cons'(N, n__natsFrom'(n__s'(N)))
sel'(N, XS) → U41'(tt', N, XS)
snd'(pair'(X, Y)) → U51'(tt', Y)
splitAt'(0', XS) → pair'(nil', XS)
splitAt'(s'(N), cons'(X, XS)) → U61'(tt', N, X, activate'(XS))
tail'(cons'(N, XS)) → U71'(tt', activate'(XS))
take'(N, XS) → U81'(tt', N, XS)
natsFrom'(X) → n__natsFrom'(X)
s'(X) → n__s'(X)
activate'(n__natsFrom'(X)) → natsFrom'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(X) → X
Infered types.
Rules:
U11'(tt', N, XS) → U12'(tt', activate'(N), activate'(XS))
U12'(tt', N, XS) → snd'(splitAt'(activate'(N), activate'(XS)))
U21'(tt', X) → U22'(tt', activate'(X))
U22'(tt', X) → activate'(X)
U31'(tt', N) → U32'(tt', activate'(N))
U32'(tt', N) → activate'(N)
U41'(tt', N, XS) → U42'(tt', activate'(N), activate'(XS))
U42'(tt', N, XS) → head'(afterNth'(activate'(N), activate'(XS)))
U51'(tt', Y) → U52'(tt', activate'(Y))
U52'(tt', Y) → activate'(Y)
U61'(tt', N, X, XS) → U62'(tt', activate'(N), activate'(X), activate'(XS))
U62'(tt', N, X, XS) → U63'(tt', activate'(N), activate'(X), activate'(XS))
U63'(tt', N, X, XS) → U64'(splitAt'(activate'(N), activate'(XS)), activate'(X))
U64'(pair'(YS, ZS), X) → pair'(cons'(activate'(X), YS), ZS)
U71'(tt', XS) → U72'(tt', activate'(XS))
U72'(tt', XS) → activate'(XS)
U81'(tt', N, XS) → U82'(tt', activate'(N), activate'(XS))
U82'(tt', N, XS) → fst'(splitAt'(activate'(N), activate'(XS)))
afterNth'(N, XS) → U11'(tt', N, XS)
fst'(pair'(X, Y)) → U21'(tt', X)
head'(cons'(N, XS)) → U31'(tt', N)
natsFrom'(N) → cons'(N, n__natsFrom'(n__s'(N)))
sel'(N, XS) → U41'(tt', N, XS)
snd'(pair'(X, Y)) → U51'(tt', Y)
splitAt'(0', XS) → pair'(nil', XS)
splitAt'(s'(N), cons'(X, XS)) → U61'(tt', N, X, activate'(XS))
tail'(cons'(N, XS)) → U71'(tt', activate'(XS))
take'(N, XS) → U81'(tt', N, XS)
natsFrom'(X) → n__natsFrom'(X)
s'(X) → n__s'(X)
activate'(n__natsFrom'(X)) → natsFrom'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(X) → X
Types:
U11' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
tt' :: tt'
U12' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
activate' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
snd' :: pair' → cons':n__s':n__natsFrom':0':nil'
splitAt' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U21' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U22' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U31' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U32' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U41' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U42' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
head' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
afterNth' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U51' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U52' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U61' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U62' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U63' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U64' :: pair' → cons':n__s':n__natsFrom':0':nil' → pair'
pair' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
cons' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U71' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U72' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U81' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U82' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
fst' :: pair' → cons':n__s':n__natsFrom':0':nil'
natsFrom' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
n__natsFrom' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
n__s' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
sel' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
0' :: cons':n__s':n__natsFrom':0':nil'
nil' :: cons':n__s':n__natsFrom':0':nil'
s' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
tail' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
take' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
_hole_cons':n__s':n__natsFrom':0':nil'1 :: cons':n__s':n__natsFrom':0':nil'
_hole_tt'2 :: tt'
_hole_pair'3 :: pair'
_gen_cons':n__s':n__natsFrom':0':nil'4 :: Nat → cons':n__s':n__natsFrom':0':nil'
Heuristically decided to analyse the following defined symbols:
activate', splitAt'
They will be analysed ascendingly in the following order:
activate' < splitAt'
Rules:
U11'(tt', N, XS) → U12'(tt', activate'(N), activate'(XS))
U12'(tt', N, XS) → snd'(splitAt'(activate'(N), activate'(XS)))
U21'(tt', X) → U22'(tt', activate'(X))
U22'(tt', X) → activate'(X)
U31'(tt', N) → U32'(tt', activate'(N))
U32'(tt', N) → activate'(N)
U41'(tt', N, XS) → U42'(tt', activate'(N), activate'(XS))
U42'(tt', N, XS) → head'(afterNth'(activate'(N), activate'(XS)))
U51'(tt', Y) → U52'(tt', activate'(Y))
U52'(tt', Y) → activate'(Y)
U61'(tt', N, X, XS) → U62'(tt', activate'(N), activate'(X), activate'(XS))
U62'(tt', N, X, XS) → U63'(tt', activate'(N), activate'(X), activate'(XS))
U63'(tt', N, X, XS) → U64'(splitAt'(activate'(N), activate'(XS)), activate'(X))
U64'(pair'(YS, ZS), X) → pair'(cons'(activate'(X), YS), ZS)
U71'(tt', XS) → U72'(tt', activate'(XS))
U72'(tt', XS) → activate'(XS)
U81'(tt', N, XS) → U82'(tt', activate'(N), activate'(XS))
U82'(tt', N, XS) → fst'(splitAt'(activate'(N), activate'(XS)))
afterNth'(N, XS) → U11'(tt', N, XS)
fst'(pair'(X, Y)) → U21'(tt', X)
head'(cons'(N, XS)) → U31'(tt', N)
natsFrom'(N) → cons'(N, n__natsFrom'(n__s'(N)))
sel'(N, XS) → U41'(tt', N, XS)
snd'(pair'(X, Y)) → U51'(tt', Y)
splitAt'(0', XS) → pair'(nil', XS)
splitAt'(s'(N), cons'(X, XS)) → U61'(tt', N, X, activate'(XS))
tail'(cons'(N, XS)) → U71'(tt', activate'(XS))
take'(N, XS) → U81'(tt', N, XS)
natsFrom'(X) → n__natsFrom'(X)
s'(X) → n__s'(X)
activate'(n__natsFrom'(X)) → natsFrom'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(X) → X
Types:
U11' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
tt' :: tt'
U12' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
activate' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
snd' :: pair' → cons':n__s':n__natsFrom':0':nil'
splitAt' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U21' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U22' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U31' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U32' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U41' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U42' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
head' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
afterNth' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U51' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U52' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U61' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U62' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U63' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U64' :: pair' → cons':n__s':n__natsFrom':0':nil' → pair'
pair' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
cons' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U71' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U72' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U81' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U82' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
fst' :: pair' → cons':n__s':n__natsFrom':0':nil'
natsFrom' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
n__natsFrom' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
n__s' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
sel' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
0' :: cons':n__s':n__natsFrom':0':nil'
nil' :: cons':n__s':n__natsFrom':0':nil'
s' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
tail' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
take' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
_hole_cons':n__s':n__natsFrom':0':nil'1 :: cons':n__s':n__natsFrom':0':nil'
_hole_tt'2 :: tt'
_hole_pair'3 :: pair'
_gen_cons':n__s':n__natsFrom':0':nil'4 :: Nat → cons':n__s':n__natsFrom':0':nil'
Generator Equations:
_gen_cons':n__s':n__natsFrom':0':nil'4(0) ⇔ 0'
_gen_cons':n__s':n__natsFrom':0':nil'4(+(x, 1)) ⇔ cons'(0', _gen_cons':n__s':n__natsFrom':0':nil'4(x))
The following defined symbols remain to be analysed:
activate', splitAt'
They will be analysed ascendingly in the following order:
activate' < splitAt'
Could not prove a rewrite lemma for the defined symbol activate'.
Rules:
U11'(tt', N, XS) → U12'(tt', activate'(N), activate'(XS))
U12'(tt', N, XS) → snd'(splitAt'(activate'(N), activate'(XS)))
U21'(tt', X) → U22'(tt', activate'(X))
U22'(tt', X) → activate'(X)
U31'(tt', N) → U32'(tt', activate'(N))
U32'(tt', N) → activate'(N)
U41'(tt', N, XS) → U42'(tt', activate'(N), activate'(XS))
U42'(tt', N, XS) → head'(afterNth'(activate'(N), activate'(XS)))
U51'(tt', Y) → U52'(tt', activate'(Y))
U52'(tt', Y) → activate'(Y)
U61'(tt', N, X, XS) → U62'(tt', activate'(N), activate'(X), activate'(XS))
U62'(tt', N, X, XS) → U63'(tt', activate'(N), activate'(X), activate'(XS))
U63'(tt', N, X, XS) → U64'(splitAt'(activate'(N), activate'(XS)), activate'(X))
U64'(pair'(YS, ZS), X) → pair'(cons'(activate'(X), YS), ZS)
U71'(tt', XS) → U72'(tt', activate'(XS))
U72'(tt', XS) → activate'(XS)
U81'(tt', N, XS) → U82'(tt', activate'(N), activate'(XS))
U82'(tt', N, XS) → fst'(splitAt'(activate'(N), activate'(XS)))
afterNth'(N, XS) → U11'(tt', N, XS)
fst'(pair'(X, Y)) → U21'(tt', X)
head'(cons'(N, XS)) → U31'(tt', N)
natsFrom'(N) → cons'(N, n__natsFrom'(n__s'(N)))
sel'(N, XS) → U41'(tt', N, XS)
snd'(pair'(X, Y)) → U51'(tt', Y)
splitAt'(0', XS) → pair'(nil', XS)
splitAt'(s'(N), cons'(X, XS)) → U61'(tt', N, X, activate'(XS))
tail'(cons'(N, XS)) → U71'(tt', activate'(XS))
take'(N, XS) → U81'(tt', N, XS)
natsFrom'(X) → n__natsFrom'(X)
s'(X) → n__s'(X)
activate'(n__natsFrom'(X)) → natsFrom'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(X) → X
Types:
U11' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
tt' :: tt'
U12' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
activate' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
snd' :: pair' → cons':n__s':n__natsFrom':0':nil'
splitAt' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U21' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U22' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U31' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U32' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U41' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U42' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
head' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
afterNth' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U51' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U52' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U61' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U62' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U63' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U64' :: pair' → cons':n__s':n__natsFrom':0':nil' → pair'
pair' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
cons' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U71' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U72' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U81' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U82' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
fst' :: pair' → cons':n__s':n__natsFrom':0':nil'
natsFrom' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
n__natsFrom' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
n__s' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
sel' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
0' :: cons':n__s':n__natsFrom':0':nil'
nil' :: cons':n__s':n__natsFrom':0':nil'
s' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
tail' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
take' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
_hole_cons':n__s':n__natsFrom':0':nil'1 :: cons':n__s':n__natsFrom':0':nil'
_hole_tt'2 :: tt'
_hole_pair'3 :: pair'
_gen_cons':n__s':n__natsFrom':0':nil'4 :: Nat → cons':n__s':n__natsFrom':0':nil'
Generator Equations:
_gen_cons':n__s':n__natsFrom':0':nil'4(0) ⇔ 0'
_gen_cons':n__s':n__natsFrom':0':nil'4(+(x, 1)) ⇔ cons'(0', _gen_cons':n__s':n__natsFrom':0':nil'4(x))
The following defined symbols remain to be analysed:
splitAt'
Could not prove a rewrite lemma for the defined symbol splitAt'.
Rules:
U11'(tt', N, XS) → U12'(tt', activate'(N), activate'(XS))
U12'(tt', N, XS) → snd'(splitAt'(activate'(N), activate'(XS)))
U21'(tt', X) → U22'(tt', activate'(X))
U22'(tt', X) → activate'(X)
U31'(tt', N) → U32'(tt', activate'(N))
U32'(tt', N) → activate'(N)
U41'(tt', N, XS) → U42'(tt', activate'(N), activate'(XS))
U42'(tt', N, XS) → head'(afterNth'(activate'(N), activate'(XS)))
U51'(tt', Y) → U52'(tt', activate'(Y))
U52'(tt', Y) → activate'(Y)
U61'(tt', N, X, XS) → U62'(tt', activate'(N), activate'(X), activate'(XS))
U62'(tt', N, X, XS) → U63'(tt', activate'(N), activate'(X), activate'(XS))
U63'(tt', N, X, XS) → U64'(splitAt'(activate'(N), activate'(XS)), activate'(X))
U64'(pair'(YS, ZS), X) → pair'(cons'(activate'(X), YS), ZS)
U71'(tt', XS) → U72'(tt', activate'(XS))
U72'(tt', XS) → activate'(XS)
U81'(tt', N, XS) → U82'(tt', activate'(N), activate'(XS))
U82'(tt', N, XS) → fst'(splitAt'(activate'(N), activate'(XS)))
afterNth'(N, XS) → U11'(tt', N, XS)
fst'(pair'(X, Y)) → U21'(tt', X)
head'(cons'(N, XS)) → U31'(tt', N)
natsFrom'(N) → cons'(N, n__natsFrom'(n__s'(N)))
sel'(N, XS) → U41'(tt', N, XS)
snd'(pair'(X, Y)) → U51'(tt', Y)
splitAt'(0', XS) → pair'(nil', XS)
splitAt'(s'(N), cons'(X, XS)) → U61'(tt', N, X, activate'(XS))
tail'(cons'(N, XS)) → U71'(tt', activate'(XS))
take'(N, XS) → U81'(tt', N, XS)
natsFrom'(X) → n__natsFrom'(X)
s'(X) → n__s'(X)
activate'(n__natsFrom'(X)) → natsFrom'(activate'(X))
activate'(n__s'(X)) → s'(activate'(X))
activate'(X) → X
Types:
U11' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
tt' :: tt'
U12' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
activate' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
snd' :: pair' → cons':n__s':n__natsFrom':0':nil'
splitAt' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U21' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U22' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U31' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U32' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U41' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U42' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
head' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
afterNth' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U51' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U52' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U61' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U62' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U63' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
U64' :: pair' → cons':n__s':n__natsFrom':0':nil' → pair'
pair' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → pair'
cons' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U71' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U72' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U81' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
U82' :: tt' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
fst' :: pair' → cons':n__s':n__natsFrom':0':nil'
natsFrom' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
n__natsFrom' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
n__s' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
sel' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
0' :: cons':n__s':n__natsFrom':0':nil'
nil' :: cons':n__s':n__natsFrom':0':nil'
s' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
tail' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
take' :: cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil' → cons':n__s':n__natsFrom':0':nil'
_hole_cons':n__s':n__natsFrom':0':nil'1 :: cons':n__s':n__natsFrom':0':nil'
_hole_tt'2 :: tt'
_hole_pair'3 :: pair'
_gen_cons':n__s':n__natsFrom':0':nil'4 :: Nat → cons':n__s':n__natsFrom':0':nil'
Generator Equations:
_gen_cons':n__s':n__natsFrom':0':nil'4(0) ⇔ 0'
_gen_cons':n__s':n__natsFrom':0':nil'4(+(x, 1)) ⇔ cons'(0', _gen_cons':n__s':n__natsFrom':0':nil'4(x))
No more defined symbols left to analyse.