uTake2(tt) → cons(N)
uLength(tt) → s(length(L))
and(tt, T) → T
isNatIList → isNatList
isNat → tt
isNat → isNat
isNat → isNatList
isNatIList → tt
isNatIList → and(isNat, isNatIList)
isNatList → tt
isNatList → and(isNat, isNatList)
isNatList → and(isNat, isNatIList)
zeros → cons(0)
take(0, IL) → uTake1(isNatIList)
uTake1(tt) → nil
take(s(M), cons(N)) → uTake2(and(isNat, and(isNat, isNatIList)))
length(cons(N)) → uLength(and(isNat, isNatList))
Innermost Strategy.
↳ GTRS
↳ CritRuleProof
uTake2(tt) → cons(N)
uLength(tt) → s(length(L))
and(tt, T) → T
isNatIList → isNatList
isNat → tt
isNat → isNat
isNat → isNatList
isNatIList → tt
isNatIList → and(isNat, isNatIList)
isNatList → tt
isNatList → and(isNat, isNatList)
isNatList → and(isNat, isNatIList)
zeros → cons(0)
take(0, IL) → uTake1(isNatIList)
uTake1(tt) → nil
take(s(M), cons(N)) → uTake2(and(isNat, and(isNat, isNatIList)))
length(cons(N)) → uLength(and(isNat, isNatList))
Innermost Strategy.
The rule uTake2(tt) → cons(N) contains free variables in its right-hand side. Hence the TRS is not-terminating.